amend
커밋을 하고 방금 커밋한 것을 수정하고 싶을 때
고양 : 너굴님, master 브랜치에 커밋이 잘못 푸시되었네요. 두 커밋 이전 상태로 돌려주시겠어요?
너굴 : 네!(큰일났다.. 어떻게 하지?)
문어 : lastest 브랜치에서 빨리 고쳐야 하는 버그가 보이네요. master에서 hotfix브랜치 따서 개발해 주시고 나중에 latest에 체리픽 해주세요.
너굴 : 체리..픽?
amend : 깜빡하고 수정 못한 파일이 있어요. 방금 만든 커밋에 추가하고 싶어요.
stash
아직 커밋을 하고 싶지 않고 잠시 킵하고 싶을 때(임시 저장?)
고양 : 너굴님, 급한 버그가 생겼어요! ㅠㅠ 지금 하시던거 중단하고 이거 먼저 고쳐주세요.
너굴 : 네~(다른 브랜치로 가야겠네.. 지금 브랜치에서 아직 커밋 못한 파일들을 어떡하지? 커밋하긴 애매한데 날려버릴 수도 없고)
stash : 변경사항을 잠시 킵해두고 싶어요, 아직 커밋은 안 만들래요.
reset
고양 : 너굴님, 요구사항이 바뀌었어요ㅠㅠ 지금 만드신 '싫어요 버튼' 빼고 좋아요 버튼까지만 만들어주세요.
너굴 : 넴(이럴 줄 알고 커밋을 잘 만들어놨지.. 옛날 코드로 리셋하자)
이미 했던 푸시를 고치는 푸시를 할 때는 강력 푸시(force push)라고 한다. 원격 저장소에 올렸던 커밋을 수정할 때 사용한다. 혼자 사용하는 브랜치에 사용해야 한다.
reset : 옛날 커밋으로 브랜치를 되돌리고 싶어.
revert
너굴 : 앗 master에 잘못된 커밋을 올려버렸다.. reset하고 force push하면 다른 사람들 히스토리에 영향을 주니 revert하는 커밋을 새로 만들어야지
1. "사이트 제목 삭제"커밋 생성
2. 방금 만든 커밋 revert하는 새로운 커밋 생성
협업을 할 경우에 master는 다른 사람과 함께 사용하고 있으므로 reset을 하고 force push하면 conflict가 발생한다. 그래서revert하는 새로운 커밋을 하는 것이다.(잘못된 커밋을 날리고 수정되기 전으로 다시 새롭게 커밋하는 것)
revert : 이 커밋의 변경사항을 되돌리고 싶어요
cherry-pick
너굴 : 어제 릴리즈한 latest브랜치에 버그가 있어! 일단 fix/test-bug 브랜치에서 버그를 고쳐서 master에 머지했다..
고양 : master에 다른 수정사항도 너무 많아서 lastest랑 당장 머지할 수 없겠네요. 그래도 릴리즈된 lastest 브랜치에 버그수정 커밋은 들어가야 해요!
너굴 : 그러 제가 고친 코드가 있는 커밋을 lastest에 똑 떼서 붙일게요. 이게 체리픽이죠!!?
cherry-pick : 저 커밋 하나만 떼서 지금 브랜치에 붙이고 싶어요