모든 개발자가 알아야 할 20가지 Git 명령어

Git은 대부분의 개발자가 매일 사용하는 필수 도구지만, 많은 경우 기본적인 push, pull, commit 정도만 활용합니다. 그러나 Git은 우리가 상상하지 못한 다양한 기능을 제공하며, 이를 활용하면 생산성과 효율성을 대폭 향상시킬 수 있습니다.

이 글에서는 Git의 유용한 명령어 20가지를 소개하며, 이를 통해 더욱 효율적이고 자신감 있게 버전 관리를 할 수 있도록 도와드립니다.

1. 인터랙티브 추가

  • 설명: 파일 전체가 아닌 특정 부분만 스테이징할 수 있습니다.
1
git add -p
  • 장점: 파일 내의 특정 변경 사항만 선택적으로 커밋할 수 있어, 작은 단위의 커밋을 만들 때 유용합니다.
  • 팁: 한 파일에서 여러 작업을 진행한 경우, 각 작업을 개별 커밋으로 나누는 데 사용하세요.

2. 마지막 커밋 되돌리기

  • 설명: 마지막 커밋을 취소하되, 작업 디렉토리의 변경 사항은 유지합니다.
1
git reset --soft HEAD~1
  • 장점: 커밋을 수정하거나 다시 커밋할 수 있는 “타임머신” 같은 기능입니다.
  • 팁: --soft는 변경 사항을 유지하고, --hard는 변경 사항까지 모두 되돌립니다.

3. 브랜치의 업스트림 상태 확인하기

  • 설명: 원격의 모든 업데이트를 가져오고, 삭제된 원격 브랜치의 참조를 정리합니다.
1
git fetch --all --prune
  • 장점: 로컬 환경을 최신 상태로 유지하며, 불필요한 브랜치를 정리합니다.
  • 팁: 대규모 팀에서 작업할 때 브랜치 목록을 깔끔하게 유지하세요.

4. 빠른 커밋 수정

  • 설명: 마지막 커밋을 수정하거나 커밋 메시지를 변경합니다.
1
git commit --amend
  • 장점: Git 로그를 깔끔하게 유지하며 작은 실수를 빠르게 수정할 수 있습니다.
  • 팁: 여러 번의 커밋 없이 작은 실수를 수정하세요.

5. 작업 임시 저장

  • 설명: 현재 변경 사항을 커밋하지 않고 임시로 저장합니다.
1
git stash
  • 장점: 현재 작업을 보류하고 다른 브랜치로 전환할 수 있습니다.
  • 팁: git stash save "설명"으로 임시 저장 항목에 설명을 추가하면 더 쉽게 찾을 수 있습니다.

6. 임시 저장 복원

  • 설명: 임시 저장된 작업을 복원합니다.
1
git stash pop
  • 장점: 저장한 작업을 다시 가져오며, 목록에서 자동으로 삭제됩니다.
  • 팁: git stash apply를 사용하면 삭제 없이 적용할 수 있습니다.

7. 특정 커밋 가져오기

  • 설명: 특정 커밋만 현재 브랜치에 적용합니다.
1
git cherry-pick <commit-hash>
  • 장점: 브랜치 전체를 병합하지 않고 필요한 기능이나 버그 수정을 가져올 수 있습니다.
  • 팁: 버그 수정이나 특정 기능만 백포트(backport)할 때 유용합니다.

8. 로컬 브랜치 정리

  • 설명: 사용하지 않는 브랜치를 삭제합니다.
1
git branch -d <branch-name>
  • 장점: 오래된 브랜치를 정리해 작업 공간을 깔끔하게 유지합니다.
  • 팁: 병합되지 않은 브랜치를 삭제하려면 -D 플래그를 사용하세요.

9. 파일 히스토리 보기

  • 설명: 특정 파일에 영향을 준 모든 커밋을 확인합니다.
1
git log -- <file>
  • 장점: 파일 변경 이력을 추적해 변경 이유를 이해할 수 있습니다.
  • 팁: --stat 옵션을 추가하면 더 자세한 변경 내용을 볼 수 있습니다.

10. 라인별 코드 작성자 확인

  • 설명: 특정 파일의 각 줄을 누가 작성했는지 확인합니다.
1
git blame <filename>
  • 장점: 디버깅 시 특정 코드 작성자를 추적하는 데 유용합니다.
  • 팁: git log와 함께 사용해 더 자세한 히스토리를 확인하세요.

11. 버그 소스 찾기

  • 설명: 이진 검색을 통해 버그가 도입된 커밋을 찾습니다.
  • 장점: 대규모 프로젝트에서 버그가 발생한 커밋을 빠르게 찾습니다.
1
2
3
git bisect start
git bisect bad
git bisect good <older-commit-hash>

12. 병합 중단

  • 설명: 병합 중 문제가 발생하면 병합을 중단하고 이전 상태로 되돌립니다.
1
git merge --abort
  • 장점: 병합 중단 후 새로운 시작점을 제공합니다.
  • 팁: 병합 전에 작업 디렉토리를 깨끗하게 유지하세요.

13. 커밋 메시지 검색

  • 설명: 커밋 메시지를 검색합니다.
1
git log --grep="검색어"
  • 장점: 메시지 키워드로 커밋을 빠르게 찾습니다.
  • 팁: --author를 추가해 특정 작성자의 커밋을 검색하세요.

14. 태그 추가

  • 설명: Git 히스토리에서 특정 지점을 태그로 표시합니다.
  • 장점: 특정 버전을 표시해 쉽게 참조할 수 있습니다.
1
git tag -a v1.0 -m "Version 1.0 release"

15. 작업 공간 정리

  • 설명: 추적되지 않은 파일과 디렉터리를 제거합니다.
1
git clean -fd
  • 장점: 작업 디렉토리를 정리하고 깔끔하게 유지합니다.
  • 팁: 삭제된 파일이 필요 없는지 확인하세요.

16. Git 작업 기록 보기

  • 설명: 모든 Git 작업 기록을 확인합니다.
  • 장점: 손실된 커밋이나 작업을 복구할 수 있습니다.
1
git reflog

17. 커밋 합치기

  • 설명: 여러 커밋을 하나로 합쳐 Git 로그를 깔끔하게 만듭니다.
  • 장점: 커밋 기록을 깔끔하고 전문적으로 유지합니다.
1
git rebase -i HEAD~<number-of-commits>

18. 커밋 되돌리기

  • 설명: 특정 커밋을 되돌리되, 전체 히스토리는 유지합니다.
  • 장점: 히스토리를 변경하지 않고 실수를 수정할 수 있습니다.
1
git revert <commit-hash>

19. 브랜치 그래프 보기

  • 설명: 프로젝트의 브랜치와 병합 기록을 그래프로 표시합니다.
  • 장점: 브랜치 구조를 한눈에 파악할 수 있습니다.
1
git log --graph --oneline --all

20. 자동 완성 사용

  • 설명: Git 명령어 입력 시 탭을 눌러 자동 완성을 활성화합니다.
  • 장점: 생산성을 높이고 타이핑 오류를 줄입니다.

마무리

이 20가지 Git 명령어 트릭은 생산성을 높이고 팀 내 Git 관리 능력을 향상시키는 필수 도구입니다. 이를 익히고 활용하면 동료들에게 "Git 마스터"로 인정받을 것입니다. 🚀

Share