cherry pick
- 원하는 커밋 가져오기
- 특정 커밋을 현재 HEAD가 가리키는 브랜치에 추가할 수 있게 해준다.
- 다른 브랜치에 있는 커밋을 지금 내 브랜치에 가져와서 커밋할 수 있는 것
git cherry-pick abc123
git cherry-pick abc123..bfe123
git cherry-pick abc123^..gde123
rebase
동작 과정
이미 푸시한 커밋에 대해서는 rebase하지 말기
위과 같은 커밋 히스토리를 가질 때, feature/rebase-test 브랜치에서 git rebase develop를 실행했을 때 동작 과정은 아래와 같다.
- 두 브랜치가 나뉘기 전인 공통 커밋으로 이동하고 나서 그 커밋부터 지금 checkout한 브랜치가 가리키는 커밋까지 diff를 차례로 만들어 어딘가에 임시 저장
- develop은 공통 커밋에서 자기가 한 커밋까지 이동 (feat: develop)
- feature/rebase-test에 1에서 저장해둔 diff 쭉 저장
- feature/rebase-test에는 develop에서만 커밋한 내용도 포함되어 있다.
- 마지막에 develop에서 git merge feature/rebase-test로 마무리
활용 - 커밋 히스토리 깔끔하게
Git - git-rebase Documentation
rebase로 커밋 메세지 수정하기
- git rebase -i HEAD~2 : 현재 작업중인 브랜치의 가장 최근 commit 2개를 보여준다.
- pick을 reword로 수정
- 커밋 매세지 수정
→ 리눅스 vi 처럼 수정하면 된다.
반응형
'git' 카테고리의 다른 글
[Git] git reset, 커밋/푸시 되돌리기 (0) | 2021.10.11 |
---|---|
[Git] 기본 명령어 : clone, pull, commit, push, branch (0) | 2021.10.11 |