에 나무를 합병리베이스는 내가 (여러 병합은 있지만 더 복잡한) 다음과 같은 역사에 가까운 무언가가 망할 놈의
모든 브랜치 커밋을 프라임 브랜치와 동일한 커밋으로 리베이스하여 병합을 보존하고 싶습니다 (아마도 리다이렉션 된 트리에 해당 커밋이있는 위치의 해시를 수동으로 지정하여). K′
에 H′
과 J′
을 병합해야한다고 어떻게 알립니까? 또는 이러한 병합 커밋을 수동으로 다시 만들어야합니까?
내가 git rebase -p --onto B′ B L
을 쓰면 제대로 적용되지 않습니다. 나는 D′
에 B′
및 M
에 H
을 리베이스하고 K′
(등 다른 지점에가/표시하지 병합합니다)에 L
을 리베이스 한 후, K
자신을 병합 다시 있지만, 작품의 공정한 조금 될 수 있습니다.
나는 severalotherquestions을 보았지만 그 중 어느 것도 병합을 특징으로하지는 않았다.
개인 정보 저장소가 비공개입니까, 아니면 GitHub에서 공개적으로 액세스 할 수 있습니까? 공개 된 경우 사람들은 직접 살펴볼 수 있습니다. –
개인 레포 인 경우'git filter-branch --parent-filter ... --all' 명령으로이 작업을 수행 할 수 있어야합니다. 부모 필터의 스크립트는'B'를 식별하고 새로운 부모는 'A'대신 'A'가되어야합니다.다시 쓰는 부분의 태그를 보존하려면'--tag-name-filter cat'을 추가하는 것이 좋습니다. 공개 레포 인 경우 이는 권장 할만한 사항이 아닙니다. 당신도'--commit-filter'를 사용할 수있는 것처럼 보입니다 만, 좀 더 일반적입니다 ... – twalberg