2016-08-26 2 views
0

오랜 스탠딩 패치 브랜치와 개발 브랜치가 있습니다. 나는 벚꽃을 피우고 특정한 변화를 패치 지점으로 옮기고 싶다.브랜치 사이에 git cherry-pick 커밋을 추적하는 방법은 무엇입니까?

내가 할 때, 나는 오래된 커밋에 대한 링크가없는 새로운 커밋을 얻는다.

해당 커밋에 대한 분기 링크를 체리 선택하고 유지 관리 할 수있는 방법이 있습니까?

은 내가 할 수있는 최선의 "-x"를 추가하고 있습니까?

감사

+0

또 다른 옵션은 필요로하는 커밋이있는 중간 분기를 만들고 패치 분기에 병합합니다 (필요없는 커밋을 되돌리기). –

답변

0

예, -x 정말 당신이 체리 고른 것을 저지 참조 할 수있는 유일한 방법입니다.

커밋의 부모 관계를 유지하려면 분기를 병합해야합니다. 내 생각 엔 패치 브랜치를 개발 브랜치와 병합하여 작업을 적절히 분리 할 수 ​​있기를 원할 것입니다.

비록 당신이 질문을 표현하는 방식을 기반으로하지만, 당신은 커밋에 대한 오해가있을 수 있다고 생각합니다. 분기에 대한 "링크"가 없습니다. 오히려 각각의 커밋은 그들이 가리키는 하나의 부모 커밋을 가지고 있습니다. 병합 커밋에는 여러 부모가있어 병합 할 커밋을 표시합니다. 브랜치는 실제로 커밋을 가리키는 포인터입니다. 커밋은 여러 브랜치에 존재할 수 있습니다. 그 이유는 커밋이 병합되었거나 커스터마이즈 된 브랜치를 기반으로 새로운 브랜치를 만들었 기 때문입니다.

어떤 git cherry-pick이 수행하는 변경 사항은 한 지점에서 변경 한 내용을 다른 위치에 적용하는 것입니다. 이 특별한 변화와 함께 역사의 나머지 부분을 원하지 않기 때문에 이렇게하십시오. 내역을 유지하려면 git merge 또는 git rebase이 한 분기에서 다른 분기로 변경됩니다.