팀 프로젝트를 진행하다보니 dev 브랜치에 package.json 파일만 올리고 싶은데, 다른 코드는 아직 dev 브랜치에 올릴 수 있는 상태가 아니라 고민하게 되는 상황이 있었다.
팀원 분께서 체리픽에 대해 말씀해주셔서 찾아봤다.
체리픽은 a 브랜치에서 b 브랜치로 특정 커밋의 선택과 적용이 가능한 Git 기능 중 하나이다.
(나같은 경우에는 혼자 작업 중인 feat 브랜치에서 -> dev 브랜치로)
전체 커밋이 아닌 개별 커밋을 선택할 수 있다는 특징 덕에 사용해보게 되었다.
git log
먼저 git log 명령어로 올리고 싶은 커밋을 식별한다.
(커밋 해시라고 하는 것 같다)
git switch <target branch>
switch 명령어로 브랜치를 옮겨준다. (checkout도 가능하나 switch 권장)
나같은 경우에는 dev 브랜치가 타겟 브랜치였다.
git cherry-pick <commit hash>
아까 git log를 통해 알아낸 커밋 해시를 입력한다.
여기서 충돌이 날 수 있는데 시나리오가 다양한 것 같아서 각자의 코드 상황에 맞게 해결해야 할것같다.
git add
git commit
충돌을 해결한 뒤에는 똑같이 스테이징, 커밋 단계를 거치면 된다.
어려운 방법은 아니지만 커밋이 많아지만 git log 확인부터 헷갈릴 수 있기 때문에 잘 보고 적용해야 할것같다🥹
참고 링크
https://git-scm.com/docs/git-cherry-pick
Git - git-cherry-pick Documentation
git cherry-pick master Apply the change introduced by the commit at the tip of the master branch and create a new commit with this change. git cherry-pick ..master git cherry-pick ^HEAD master Apply the changes introduced by all commits that are ancestors
git-scm.com
'🪩 > Git' 카테고리의 다른 글
[Git] branch, GItHub pull request (0) | 2024.01.15 |
---|---|
[Git] remote rejected 에러 (0) | 2024.01.10 |
[Git] commit 과정 (0) | 2022.02.27 |
[Git] master, 그리고 main branch (0) | 2022.02.27 |