2011-02-09 3 views
5

개개인을 한 지점에서 다른 지점으로 이동하는 경우에는 git에서 몇 가지 옵션이 있다는 것을 알고 있습니다. 나는 git mergegit cherry-pick을 실험했지만, git cherry-pick이 바람직하지 않은 것을 보지 못했습니다.git merge 대신 어떤 경우에 git cherry-pick이 필요합니까?

git merge <hash> 하나의 커밋으로 보존 다른 한 지점에서 커밋 지정된 이동 :

나의 이해는 다음과 같습니다.

git cherry-pick <hash>은 두 번째 분기에서 커밋 사본을 생성하지만 자체 커밋 해시와 별도입니다.

첫 번째 옵션이 나에게 좋을 것 같지만 cherry-pick이 선호 될 때 어떤 인스턴스입니까?

답변

7

커밋의 무리가있는 master의 지점이 있다고 가정 해보십시오. 어쩌면 master에 맞는 변경을했는데 모두 (예 : 작은 버그 수정 또는 작은 기능 추가)을 가져오고 싶지 않을 수 있습니다. git cherry-pick을 사용하면 만 잡고 다른 지점의을 가져와 master으로 가져올 수 있습니다.

+0

* 해시를 병합하는 경우 해당 커밋 만 병합합니까? – hvgotcodes

+3

@hvgotcodes : 아니, 병합 할 때 병합중인 지점에서 분기 된 이후에 ''및 모든 조상이 ''이됩니다. 브랜치 이름은 실제로 명명 된 해시입니다. – mipadi

+0

나에게 +1을 지우는 대신 ~ +1. – hvgotcodes

0

또 다른 사용 사례는 커밋을 잃어 버리고 다시 돌려 받기를 원하는 경우입니다. http://www.programblings.com/2008/06/07/the-illustrated-guide-to-recovering-lost-commits-with-git/

마티유는 @ ml의 복구 (마스터) $의 자식 93b0c51cfea8c731aa385109b8e99d19b38a55be 완료 한 벚꽃 선택을 체리 선택하십시오. 만든 는 f443703 커밋 : 이제 멋진 1 개 파일, 1 개 삽입 (+), 0 삭제를 변경했다 - 당신은 물론 해시를 가질 필요가

cool_file 모드 100644를 만드는().

관련 문제