2013-06-28 6 views
0

다른 브랜치에서 커밋을하면 단순히 새로운 디렉토리에 많은 파일을 추가합니다.괴괴 망측 한 git cherry-pick 동작

커밋은 id가 123456이고, foo이라는 항목이 가득 찬 디렉토리를 추가한다고 가정 해 봅시다.

이제 깨끗한 작업 트리에서 내 다른 지점에서 git cherry-pick 123456을 입력하고 foo 디렉토리를 추가하기를 기대합니다.

아니요! 체리 선택이 실패하고 다른 파일 (!)에 대한 다른 변경 사항이 포함되어 병합 경로를 제공합니다.

확실히 체리 피킹에 대한 커밋은 당신이 몰랐거나 예상하지 못한 것들을 포함해야합니까? 아니, git show --oneline --name-status 123456 | grep -v foo은 아무 것도 반환하지 않습니다. 즉 foo 외부의 파일에는 변경 사항이 없습니다.

무슨 일이 일어나고 있으며, 내가 어떻게이 커밋을 올바르게 선택할 수 있습니까?

+0

벚꽃 따기 후에 "foo"가 HEAD 위에 추가되었는지 여부는 확실하지 않습니다. 그렇지 않다면, -x 플래그를 사용하여 cherry-pick을 실행하십시오. 의도 한 의도와 다른 커밋을 추가했을 수도 있습니다. – Vasiliy

+0

@VasiliyZukanov'foo' 디렉토리는 체리 피크를 발행 할 때 작업 트리에 존재하지 않았습니다. '-x'는 새로운 커밋과 관련된 노트에 관한 것입니다. 나는 그것이 이상한 git 버그라고 믿는다 (아래 나의 대답을 보라). – artfulrobot

+0

나는 'foo'가 체리 피클 (cherry-pick)을 실행 한 지점에 추가되었는지 궁금해했다. 어쨌든, Git을 업그레이드하면 문제가 해결됩니다. – Vasiliy

답변

0

Upgrade git.

BAD : (데비안 짜기에서와 같이) 자식 버전 1.7.2.5 - 생각 위지 업그레이드는 해결됩니다 그것

GOOD (가 v1.7.10) : 자식 버전 1.7.9.5 (우분투 정밀 같이)