Git - 체리픽(Cherry-pick), 다른 브랜치 혹은 다른 레포지토리의 커밋 가져오기
오늘 다루어볼 내용은 git의 cherry-pick(체리픽)이다. 보통 체리픽을 사용하는 이유는 다른 브랜치의 커밋의 일부만 가져올때 많이 사용한다. 간단하게 예제를 다루어보자.
> gb
* [1] feature/add-function
[2] feature/update-function
위처럼 두개의 브랜치가 존재하고 각 브랜치의 커밋로그는 아래와 같다.
> feature/add-function
* 13e321a - (HEAD -> feature/add-function) add c.txt (9 minutes ago) <levi.yoon>
* f894b25 - add b.txt (9 minutes ago) <levi.yoon>
* 35402a1 - add a.txt (9 minutes ago) <levi.yoon>
> feature/update-function
* cb6a172 - (HEAD -> feature/update-function) add d.txt (7 minutes ago) <levi.yoon>
* d516ac8 - update a.txt (7 minutes ago) <levi.yoon>
* 13e321a - (feature/add-function) add c.txt (9 minutes ago) <levi.yoon>
* f894b25 - add b.txt (10 minutes ago) <levi.yoon>
* 35402a1 - add a.txt (10 minutes ago) <levi.yoon>
여기서 feature/update-function 브랜치에 있는 "d516ac8 - update a.txt" 이 커밋내용만 가져와 feature/add-function 브랜치에 넣고 싶을 때 cherry-pick을 이용한다.
> git checkout feature/add-function
> git cherry-pick d516ac8
> git log
* 09edc77 - (HEAD -> feature/add-function) update a.txt (46 seconds ago) <levi.yoon>
* 13e321a - add c.txt (12 minutes ago) <levi.yoon>
* f894b25 - add b.txt (12 minutes ago) <levi.yoon>
* 35402a1 - add a.txt (12 minutes ago) <levi.yoon>
지금 한 예제는 같은 레포지토리의 다른 브랜치에서 커밋을 가져왔지만, 다른 원격 레포지토리의 특정 브랜치에 있는 커밋내용도 내 레포지토리 브랜치에 넣을 수 있다.
출처: https://coding-start.tistory.com/374?category=786242 [코딩스타트]
'형상관리 > Git' 카테고리의 다른 글
git 명령어 (0) | 2023.11.28 |
---|---|
Git - git reset, revert란(깃 커밋 되돌리기)? (0) | 2021.04.27 |
Git - git rebase란? Merge & Rebase 차이점 (0) | 2021.04.27 |
Git - fast-forward merge 란? fast-forward & 3-way Merge의 차이점 (0) | 2021.04.27 |
Git - 자주 사용되거나 유용한 Git 명령들 (0) | 2021.04.27 |
Git - .gitignore가 작동하지 않을때(.gitignore가 안먹을때) (0) | 2021.04.27 |
Git - 특정 브랜치(branch)만 clone하는 명령어 (0) | 2021.04.26 |
Git - Mac OS, Git pull 명령 후 non-fast-forward 문제 해결방법 (0) | 2021.04.26 |