[Git] 모든 개발자가 알아야 할 18가지 Git 명령어
오늘도 dev.to를 둘러보다가 Git을 필수적으로 사용하는 개발자들에게 유익할 20가지 Git 명령어를 정리한 포스트를 보게 되어, 직접 한글로 번역하여 포스팅하게 되었다.
(20가지 중 18가지만 추려서 포스팅하였다.)
[원본 포스팅: https://dev.to/jagroop2001/20-git-command-line-tricks-every-developer-should-know-1i21]
Git은 개발자에게 필수적인 버전 제어 도구이다. GUI 도구로 일부 작업을 간소화할 수 있지만 Git 명령줄을 숙지하면 더 깊은 제어력, 유연성, 속도를 얻을 수 있다.
개발자가 작업 흐름을 간소화하기 위해 알아야 할 Git 명령어 18가지를 소개한다.
1. 전역 Configuration 설정
커밋에 올바른 ID가 태그되어 있는지 확인하자
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
Tip: --global대신 --local을 사용하여 프로젝트별 Configuration을 설정할 수 있다.
2. 마지막 커밋 취소(변경 사항 손실 없이)
마지막 커밋에서 실수를 했다면 실행 취소할 수 있다.
git reset --soft HEAD~1
이렇게 하면 변경 사항이 단계적으로 적용되어 커밋을 수정하거나 문제를 해결할 수 있다.
3. 마지막 커밋 수정
변경 사항을 포함하는 것을 깜빡했거나 커밋 메시지를 업데이트 하고 싶을때
git add .
git commit --amend -m "Updated commit message"
이렇게 하면 새 커밋을 만들지 않고 이전 커밋을 업데이트한다.
4. 커밋되지 않은 변경 사항 Stash
커밋하지 않고 빠르게 branch를 전환해야할때
git stash
나중에 다음 명령어로 stash된 항목을 되찾을 수 있다.
git stash pop
5. 커밋 기록을 그래프로 보기
커밋 기록을 시각화하면 프로젝트 상태를 더 쉽게 이해할 수 있다.
git log --graph --online --all
6. 커밋 작성자 변경
마지막 커밋의 작성자를 변경한다.
git commit --amend --auther="New Author <newauthor@example.com>"
7. Stage된 변경 사항의 차이점 확인
git diff를 사용하여 다른 stage의 파일들을 비교할 수 있다.
git diff --staged
이는 준비 중이지만 아직 커밋되지 않은 변경사항을 보여준다.
8. 깨끗한 커밋 기록을 위한 Rebase
Rebase는 명확성을 위해 커밋 기록을 다시 작성한다.
git rebase -i HEAD~3
이렇게 하면 마지막 3개의 커밋을 편집, 스쿼시 또는 재정렬할 수 있다.
9. 모든 Banch 보기 (로컬과 원격)
어떤 branch들이 이용 가능한지 확인할 수 있다.
git branch -a
10. 추적되지 않은 파일 및 디렉토리 정리
Git에서 추적하지 않는 원치 않는 파일을 빠르게 제거할 수 있다.
git clean -fd
Tip: -n을 사용하면 제거될 내용을 미리 볼 수 있는 테스트 실행이 가능하다.
11. Upstream Branch 추적
로컬 branch와 원격 branch의 동기화 상태를 유지할 수 있다.
git branch --set-upstream-to=origin/main
12. 대화형 rabase로 스쿼시 커밋
여러 커밋을 하나로 결합한다.
git rebase -i HEAD~n # Replace 'n' with the number of commits
13. 특정 커밋에서 파일 보기
특정 커밋 시점에서 파일의 상태를 확인한다.
git show <commit-hash>:path/to/file
14. 커밋 후 .gitignore 편집
특정 파일을 무시하는 것을 잊었다면 .gitignore를 업데이트할 수 있다.
echo "node_modules/" >> .gitignore
git rm -r --cached node_modules/
git commit -m "Update .gitignore"
15. Push된 커밋 되돌리기
기록을 변경하지 않고 특정 커밋의 변경 사항을 취소한다.
git revert <commit-hash>
16. 메타데이터만 가져오기
저장소 전체를 가져오는 것을 피하고 싶다면?
git fetch --dry-run
이를 통해 실제 데이터를 다운로드하지 않고도 어떤 내용이 가져올 지 확인할 수 있다.
17. 특정 코드 라인의 작성자 확인
파일의 특정 line을 누가 썼는지 알아볼 수 있다.
git blame path/to/file
18. 파일을 마지막 커밋으로 재설정
특정 파일에 대한 로컬 변경 사항을 취소한다.
git checkout -- path/to/file
이 18가지 Git 명령줄 트릭은 혼자 작업하든 팀과 함께 작업하든 개발 프로세스를 더욱 원활하게 만들어 줄 수 있다.
GUI 도구는 편리함을 제공하지만, Git 명령줄을 마스터하면 워크플로를 더 잘 제어할 수 있다.
이 명령어들을 숙지하고 Git 기술을 향상시키자!