A Branch의 특정 commit을 B Branch로 머지하고 싶을 때는 어떻게 해야할까?
"Cherry pick" 은 다른 브랜치에 있는 커밋을 선택적으로 내 브랜치에 적용시킬 때 사용한다.
Cherry-pick : 동사. 최고를 선별하다.
$ git cherry-pick [commit id] //해당 커밋 아이디를 반영하고 Commit수행.
$ git cherry-pick -n [commit id] //해당 커밋 아이디를 반영하고 ADD 수행하고 Commit은 안함.
cherry-pick 하려는 커밋과 내 브랜치가 comflict 날 때?
1. Conflict 해결하고 cherry-pick
2. git add //수정된 코드를 올린다. 커밋 다시 할 필요 없음.
3. git cherry-pick --continue // 다시 진행 cherry-pick 중단
4. git cherry-pick --abort // cherry-pick 이전으로 돌아 간다.
cherry-pick이외에도 git rebase라는 명령어로 원하는 커밋을 선택적으로 고를 수 있다.
하지만, git rebase는 현재 브랜치 위에서만 가능
다른 브랜치에서 commit을 가져오고 싶다면 먼저 그 브랜치를 현재 브랜치로 merge한 후 rebase해야 하는 번거로움이 있다.
cherry-pick은 그렇게 권장하는 명령어는 아님.
cherry-pick을 하는 경우 같은 내용을 갖고 있는 커밋이 여러개 생기기 때문에 나중에는 누가 누굴 cherry-picking했는지 모르는 상황이 생길 수도 있다. 부득이한 경우에만 사용하기.
cherry-pick 옵션
'SW Programming > 형상관리' 카테고리의 다른 글
슬랙에서 깃헙 푸시 알람받기 (0) | 2022.08.17 |
---|---|
안드로이드 스튜디오(android studio)에서 깃헙(git) 계정 바꾸기 (0) | 2022.07.26 |
Unity Scene git Merge하다가 comflict ... 돌아버리기전에 발견한 UnityYAMLMerge기능으로 자동머지하자 (git) (0) | 2021.11.26 |
GIT 히스토리까지 모조리 새로운 저장소로 복사하기 (clone --mirror) (0) | 2021.06.17 |
GIT 다른 저장소에 있는 소스코드 합쳐서 하나의 저장소로 관리하기 (0) | 2020.05.11 |
댓글