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
)