오랜 스탠딩 패치 브랜치와 개발 브랜치가 있습니다. 나는 벚꽃을 피우고 특정한 변화를 패치 지점으로 옮기고 싶다.브랜치 사이에 git cherry-pick 커밋을 추적하는 방법은 무엇입니까?
내가 할 때, 나는 오래된 커밋에 대한 링크가없는 새로운 커밋을 얻는다.
해당 커밋에 대한 분기 링크를 체리 선택하고 유지 관리 할 수있는 방법이 있습니까?
은 내가 할 수있는 최선의 "-x"를 추가하고 있습니까?
감사
오랜 스탠딩 패치 브랜치와 개발 브랜치가 있습니다. 나는 벚꽃을 피우고 특정한 변화를 패치 지점으로 옮기고 싶다.브랜치 사이에 git cherry-pick 커밋을 추적하는 방법은 무엇입니까?
내가 할 때, 나는 오래된 커밋에 대한 링크가없는 새로운 커밋을 얻는다.
해당 커밋에 대한 분기 링크를 체리 선택하고 유지 관리 할 수있는 방법이 있습니까?
은 내가 할 수있는 최선의 "-x"를 추가하고 있습니까?
감사
예, -x
정말 당신이 체리 고른 것을 저지 참조 할 수있는 유일한 방법입니다.
커밋의 부모 관계를 유지하려면 분기를 병합해야합니다. 내 생각 엔 패치 브랜치를 개발 브랜치와 병합하여 작업을 적절히 분리 할 수 있기를 원할 것입니다.
비록 당신이 질문을 표현하는 방식을 기반으로하지만, 당신은 커밋에 대한 오해가있을 수 있다고 생각합니다. 분기에 대한 "링크"가 없습니다. 오히려 각각의 커밋은 그들이 가리키는 하나의 부모 커밋을 가지고 있습니다. 병합 커밋에는 여러 부모가있어 병합 할 커밋을 표시합니다. 브랜치는 실제로 커밋을 가리키는 포인터입니다. 커밋은 여러 브랜치에 존재할 수 있습니다. 그 이유는 커밋이 병합되었거나 커스터마이즈 된 브랜치를 기반으로 새로운 브랜치를 만들었 기 때문입니다.
어떤 git cherry-pick
이 수행하는 변경 사항은 한 지점에서 변경 한 내용을 다른 위치에 적용하는 것입니다. 이 특별한 변화와 함께 역사의 나머지 부분을 원하지 않기 때문에 이렇게하십시오. 내역을 유지하려면 git merge
또는 git rebase
이 한 분기에서 다른 분기로 변경됩니다.
또 다른 옵션은 필요로하는 커밋이있는 중간 분기를 만들고 패치 분기에 병합합니다 (필요없는 커밋을 되돌리기). –