短いバージョン:
左のグラフから右のグラフに移動するにはどうすればよいですか。また、重複するコミット(root2、a '、b')を手動でクリアする必要がありますか?そうしないと、GCは将来のある時点でそれらを削除しますか?
長いバージョン:
CVSからgitへのポートが悪いため、マスターがgitで既に作成されているときにCVSからbranch_1をインポートすると、同じリポジトリに2つの代替履歴ができてしまいました。ご覧のとおり、branch_1のコミットは一意ですが、重複しているものもあります。これを修正する最も簡単な方法は何ですか?
私はいくつかのアイデアを持っていますが、それらを実行する方法がわかりません。一つは、完全にbranch_1を削除して再起動することですが、私はgitのがいることを認識させる方法がわからないroot1
とroot2
、すべてのパッチが同じ行に適用されますことを同じようにしています。別のアイデアは、f、g、hをbにリベースし、どういうわけかroot2、a '、b'を削除することです。しかし、共通の祖先がないため、通常のリベースは機能しないと思います
実際には、ブランチの重複コミットと一意のコミットは数百であるため、非常に手動の何かは良くありません
要求しているリベースは、上のすべてのコミットのコミットハッシュを書き換えることに注意してくださいbranch_1
。私はあなたの美しい図でコミットのコミットハッシュを使用b
しb'
て示しています。
git checkout branch_1
git rebase --onto b b'
これgit rebase
は、マニュアルページの次の形式と一致します。
git rebase --onto <newbase> <upstream>
マニュアルに基づいて、次のことが起こります。
<upstream>
、一時領域に保存されます。<upstream>
またはオプションが指定された<newbase>
場合にリセット--onto
されます。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加