공부/Git, GitHub

[github]특정 커밋만 머지하기 (cherry-pick)

개발의 피 2024. 1. 31. 16:24

만약, branch1 -> main으로 커밋하려고 하는 상황

 

1. branch1 커밋 목록 확인

git checkout branch1 // (branch1로 체크 아웃)



git log 

or

git log -4 // 보고 싶은 개수 제한

만약 git log로 했을 경우, 목록이 엔터를 누르면 계속 뜨게 되는데 

+ 대충 경고문 ~ (press return)

이 때, 목록 보기를 중단하고 싶다면 'q'를 누르면 원래의 커맨드 라인으로 돌아온다

 

2. 머지할 대상 브랜치로 체크아웃

git checkout main

 

3. 특정 커밋 머지하기

git cherry-pick commit1_hash commit2_hash commit3_hash ... // 원하는 커밋 해시 나열

or

git cherry-pick commit1_hash^..commit3_hash // 커밋 범위 지정 (가장 오래된 커밋^..가장 최신 커밋)

해시 : commit 옆에 적힌 40자리 문자열 

 

충돌이 뜨면 침착하게 github desktop에서 사용할 파일 선택해주고, continue cherry-pick + push origin main 까지 해주면 끝~!