728x90
반응형

유용한 Git 숨은 명령어

  • Git을 사용할 때 git commit, git push, git pull 같은 기본 명령어는 자주 쓰이지만, 상대적으로 덜 알려진 강력한 기능들이 많이 있습니다.
  • 특정 커밋을 되돌리거나, 여러 개의 작업 디렉토리를 관리하거나, 손쉽게 버그를 추적할 수 있는 명령어들이 존재합니다.
  • 이번 글에서는 Git의 숨은 명령어 10가지 를 소개해 드리겠습니다.


1. git bisect – 버그가 발생한 커밋 찾기

  • 버그가 어느 커밋에서 발생했는지 자동으로 찾아주는 이진 탐색 명령어

    • sh

        git bisect start
        git bisect bad  # 현재 커밋이 버그가 있는 경우
        git bisect good <커밋 해시>  # 정상 동작했던 마지막 커밋
      
  • Git이 자동으로 중간 커밋을 체크아웃하며, 버그 여부를 판단하면서 좁혀 나갑니다.

  • 종료 시:

    • sh

        git bisect reset


2. git reflog – 사라진 커밋을 복구

  • Git의 로컬 변경 이력을 추적 (브랜치 이동, 리베이스, 리셋 등을 복구할 때 유용)

    • sh

        git reflog
      
  • 예: 최근 5개의 HEAD 이동 이력 확인

    • sh

        git reflog -n 5
      


3. git worktree – 하나의 저장소에서 여러 개의 작업 디렉토리 사용

  • 여러 브랜치를 동시에 작업할 때 매우 유용한 명령어

  • 사용법:

    • sh

        git worktree add ../new-branch-dir new-branch
      
  • ../new-branch-dirnew-branch 브랜치의 새로운 작업 디렉토리가 생성됨.



4. git cherry-pick -n – 특정 커밋을 가져오되 바로 커밋하지 않기

  • 특정 커밋의 변경 사항을 적용하되, 바로 커밋하지 않음

  • sh

      git cherry-pick -n <커밋 해시>
      git status  # 변경 내용 확인 후 직접 수정 가능
    


5. git replace – 특정 커밋을 다른 커밋으로 대체

  • 과거의 커밋을 임시로 다른 커밋으로 바꿔치기할 수 있음

    • sh

        git replace <올드 커밋> <새 커밋>
      
  • 예: 기존 커밋을 다른 커밋으로 보이게 설정

    • sh

        git replace abc123 def456
      


6. git archive – 특정 버전의 파일을 압축해서 내보내기

  • Git 저장소의 특정 버전을 ZIP 또는 tar 파일로 압축

    • sh

        git archive -o release.zip HEAD
      
  • 특정 브랜치 기준으로 압축

    • sh

        git archive -o feature.zip feature-branch
      


7. git blame -C -C – 파일 이동까지 추적하는 변경 기록 조회

  • 파일 이동까지 추적하여, 코드 변경 기록을 분석하는 명령어
    • sh

        git blame -C -C file.txt
      


8. git fsckGit 저장소의 무결성 검사

  • Git 저장소에 깨진 오브젝트가 있는지 확인할 때 사용
    • sh

        git fsck
      


9. git stash pop --index – 원래 스테이징 상태까지 복원

  • stash를 적용하면서 원래의 인덱스(스테이징 상태)까지 복원 가능

  • 사용법:

    • sh

        git stash pop --index


10. git rerere – 같은 충돌을 반복해서 해결할 필요 없음*

  • Git이 동일한 충돌 해결 방법을 기억해서 자동으로 해결

  • 활성화:

    • sh

        git config --global rerere.enabled true
      
  • 충돌 해결 후 다시 같은 충돌이 발생하면 자동 적용.



요약

  • Git에는 우리가 자주 사용하는 명령어 외에도 강력한 기능을 가진 숨겨진 명령어들이 많습니다.

  • 특히, 위에서 소개한 명령어들은 디버깅, 복구, 브랜치 관리, 충돌 해결 등의 다양한 작업을 더 효율적으로 할 수 있도록 도와줍니다.

  • 이제 Git을 더 능숙하게 다룰 수 있도록, 한 번 직접 실험해 보세요! 🚀




  • 도움이 되셨으면 하단의 ❤️ 공감 버튼 부탁 드립니다. 감사합니다! 😄

728x90
반응형

+ Recent posts