4 실무 사례와 함께 Git 정복하기

source: categories/study/git-beginner2/git-beginner_2_4.md

4.1 amend

  • --amend: 깜빡하고 수정 못한 파일이 있을 때, 방금 만든 커밋에 살짝 추가하는 명령어입니다.
git commit --amend
git push origin master -f

4.2 stash

  • stash: 변경사항을 잠시 keep해두고 싶을 때. 아직 커밋은 안 만들고 싶을 때.
  • stack 처럼 쌓입니다. 가장 나중에 들어간 것이 가장 먼저나오는 식입니다.
git stash
git stash --include-untracked
git stash pop

4.3 reset

git reset (--soft/--mixed/--hard)
  • --soft: 모든 로컬 변경사항을 유지합니다
  • --mixed(기본값): 작업 상태는 그대로 주지만 인덱스는 리셋
  • --hard: 모든 작업 상태 내 변경 사항을 버림

4.4 revert

revert 또한 reset처럼 내 커밋을 되돌리고 싶을 때 사용하는 명령어이다.
차이점은 reset은 히스토리를 아예 초기화시키는 것이고 revert는 히스토리를 새로 쌓으면서 변경을 하는 것이다.

즉, reset을 하고 force push를 하면 다른 사람들 히스토리에 영향을 줄 수도 있으니 그러한 경우엔 revert로 되돌리는 것이 좋다.

4.5 cherry-pick

  • cherry-pick: 특정 커밋 하나만 떼서 지금 브랜치에 붙이고 싶을 때 사용하는 명령어

  • 개발자A: 어제 릴리즈한 latest 브랜치에 버그가 있어! 일단 fix/text-bug 브랜치에서 버그를 고쳐서 master 에 머지하긴했는데..
  • 개발자B: master에 다른 수정사항도 너무 많아서 당장 latest 브랜치에 머지할 수는 없겠네요. 그리도 릴리즈된 latest 브랜치에 버그 수정 커밋은 들어가야해요!
  • 개발자A: 그럼 제가 고친 코드가있는 커밋을 latest에 똑 떼서 붙일게요~! (cherry-pick)