본문 바로가기

🛠️ Tools/🐈 Github

[Github] cherry pick

cherry pick  

다른 브랜치의 특정 커밋을 가져와야 할 경우 사용할 수 있는 명령어

특정한 한 커밋을 현재 HEAD 가 가리키는 브랜치에 추가할 수 있다. 

이를 통해 다른 브랜치에서 발생한 중요한 변경 사항이나 수정 사항을 현재 작업 중인 브랜치에 적용할 수 있다. 

 

git cherry-pick 명령어를 사용할 때는 가져오려는 커밋의 해시 값이나 커밋 식별자를 입력하여 

해당 커밋을 선택한다. 

선택한 커밋의 변경내용과 커밋 메시지가 현재 브랜치로 가져와지며, 필요한 경우 충돌을 해야해야할 수도 있다. 

 

1. 가져올 커밋이 있는 브랜치로 이동 

git checkout other-branch

 

2. 가져올 커밋의 해시 값을 확인 

git log

 

3. 자동 커밋하지 않고 가져오기 

커밋을 자동으로 생성하지 않고, 변경사항을 스테이징 영역에만 추가한 후 원하는 내용을 선택적으로 반영할 수도 있음. 

git cherry-pick --no-commit abc123

 

4. 변경사항을 스테이징 영역에 추가 

git add file.txt

 

 

 

 

 

++ 그 밖의)

새로운 브랜치 생성 

git branch join-api

 

해당 브랜치로 이동 후 체리픽을 진행할 예정이다. 

git checkout join-api

 

체리픽 할 브랜치에서 해시 값 복사 후 체리픽 진행

git cherry-pick <feature/join-api에서 가져올 커밋의 해시값>

 

충돌 발생할 경우 충돌 해결하기 -> git add 명령어를 사용해 충돌을 해결한 파일을 스테이징하기 

 

변경된 내용을 커밋하기 

git commit

+ ) 체리픽을 해왔다고 해서 새로운 브랜치에 커밋이 된게 아니기 때문에 꼭 git commit 을 남겨줘야 한다. 

 

 

대상 커밋 이전에 해당하는 파일이 존재하지 않을 경우 해당 파일을 가져올 수 없다. 

 

따라서 파일이 생성되는 지점은 필수적으로 체리픽을 진행해야함. 

 

branch 이름 변경하기 

git branch -m old-branch new-branch

 

'🛠️ Tools > 🐈 Github' 카테고리의 다른 글

[GitHub] 프로필 Readme 파일 꾸미기  (1) 2024.03.08