🪩/Git

[Git] 체리픽(Cherry-Pick)

S0 2024. 3. 22. 01:43

 

팀 프로젝트를 진행하다보니 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