重複したコミットでgit履歴を修正

HiLiKus

短いバージョン:
左のグラフから右のグラフに移動するにはどうすればよいですか。また、重複するコミット(root2、a '、b')を手動でクリアする必要がありますか?そうしないと、GCは将来のある時点でそれらを削除しますか?ビフォアーアフター

長いバージョン:
CVSからgitへのポートが悪いため、マスターがgitで既に作成されているときにCVSからbranch_1をインポートすると、同じリポジトリに2つの代替履歴ができてしまいました。ご覧のとおり、branch_1のコミットは一意ですが、重複しているものもあります。これを修正する最も簡単な方法は何ですか?

私はいくつかのアイデアを持っていますが、それらを実行する方法がわかりません。一つは、完全にbranch_1を削除して再起動することですが、私はgitのがいることを認識させる方法がわからないroot1root2、すべてのパッチが同じ行に適用されますことを同じようにしています。別のアイデアは、f、g、hbにリベースし、どういうわけかroot2、a 'b'を削除することですしかし、共通の祖先がないため、通常のリベースは機能しないと思います

実際には、ブランチの重複コミットと一意のコミットは数百であるため、非常に手動の何かは良くありません

merlin2011

要求しているリベースは、上すべてのコミットのコミットハッシュを書き換えることに注意してくださいbranch_1私はあなたの美しい図でコミットのコミットハッシュを使用bb'て示しています。

git checkout branch_1
git rebase --onto b b'

これgit rebaseは、マニュアルページの次の形式と一致します。

git rebase --onto <newbase> <upstream>

マニュアルに基づいて、次のことが起こります。

  1. 現在のブランチでコミットによって行われたが、含まれていないすべての変更は<upstream>、一時領域に保存されます。
  2. 現在のブランチは、、<upstream>またはオプションが指定された<newbase>場合にリセット--ontoされます。
  3. 以前に一時領域に保存されたコミットは、現在のブランチに1つずつ順番に再適用されます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

既存のgit履歴で単一のコミットを複数のコミットに分割する

分類Dev

Gitの履歴の途中でコミットを元に戻す

分類Dev

コミット履歴をフォークしましたか?

分類Dev

Gitリポジトリを新しいリポジトリに複製する-コミット履歴なし

分類Dev

コミット履歴がないgitリポジトリを、履歴を保存したリポジトリにマージします

分類Dev

押しつぶされたコミットを解凍するためにgit履歴を書き換える

分類Dev

Git履歴でコミットされたコードをgrep(検索)する方法

分類Dev

切り離されたHEAD状態でのGitリベース-履歴内のファイルを修正し、最新のコミットでファイルを置き換えたい場合はどうすればよいですか

分類Dev

gitにコミットされたファイルを無視し、履歴から削除します

分類Dev

Git:以前のすべての履歴なしでコミットをチェリーピックする方法

分類Dev

Gitの先のとがったものはVSTSの履歴をコミットします

分類Dev

gitは履歴からマージコミットを削除します

分類Dev

Git:2回前のコミットを履歴に追加します

分類Dev

特定の以前のコミットに戻り、git履歴を変更しない

分類Dev

Git-履歴からコミットを削除する

分類Dev

シェルスクリプトで* n *コミットのgit履歴(コミット日)を変更する

分類Dev

コミット履歴から孤立したブランチを削除します

分類Dev

スクリプトでコミット親を介してGit履歴をフォローする同じコミットを2回訪問する

分類Dev

これまでのすべてのgitコミットを単一のコミットに変換し、その履歴をすべて消去します

分類Dev

stashをgitcommitした場合、コミット履歴に表示される日付は何ですか?

分類Dev

ターミナルで重複したコマンド履歴をマージするにはどうすればよいですか?

分類Dev

ブランチ履歴を保持しながら、以前にマージされたブランチからの過去のコミットを修正します

分類Dev

マージコミットをフラット化するためにgit履歴を書き換える

分類Dev

Bitbucket履歴からコミットを完全に削除します

分類Dev

限られたコミット履歴をリモートGitにプッシュする

分類Dev

履歴なしでgitリポジトリを複製する

分類Dev

gitマージ後、ブランチのコミット履歴をgitロググラフに保持します

分類Dev

filter-branchで作成者名を変更した後、Gitコミットが重複しています

分類Dev

すべてのコミットをクリアし、git / githubの履歴を削除します

Related 関連記事

  1. 1

    既存のgit履歴で単一のコミットを複数のコミットに分割する

  2. 2

    Gitの履歴の途中でコミットを元に戻す

  3. 3

    コミット履歴をフォークしましたか?

  4. 4

    Gitリポジトリを新しいリポジトリに複製する-コミット履歴なし

  5. 5

    コミット履歴がないgitリポジトリを、履歴を保存したリポジトリにマージします

  6. 6

    押しつぶされたコミットを解凍するためにgit履歴を書き換える

  7. 7

    Git履歴でコミットされたコードをgrep(検索)する方法

  8. 8

    切り離されたHEAD状態でのGitリベース-履歴内のファイルを修正し、最新のコミットでファイルを置き換えたい場合はどうすればよいですか

  9. 9

    gitにコミットされたファイルを無視し、履歴から削除します

  10. 10

    Git:以前のすべての履歴なしでコミットをチェリーピックする方法

  11. 11

    Gitの先のとがったものはVSTSの履歴をコミットします

  12. 12

    gitは履歴からマージコミットを削除します

  13. 13

    Git:2回前のコミットを履歴に追加します

  14. 14

    特定の以前のコミットに戻り、git履歴を変更しない

  15. 15

    Git-履歴からコミットを削除する

  16. 16

    シェルスクリプトで* n *コミットのgit履歴(コミット日)を変更する

  17. 17

    コミット履歴から孤立したブランチを削除します

  18. 18

    スクリプトでコミット親を介してGit履歴をフォローする同じコミットを2回訪問する

  19. 19

    これまでのすべてのgitコミットを単一のコミットに変換し、その履歴をすべて消去します

  20. 20

    stashをgitcommitした場合、コミット履歴に表示される日付は何ですか?

  21. 21

    ターミナルで重複したコマンド履歴をマージするにはどうすればよいですか?

  22. 22

    ブランチ履歴を保持しながら、以前にマージされたブランチからの過去のコミットを修正します

  23. 23

    マージコミットをフラット化するためにgit履歴を書き換える

  24. 24

    Bitbucket履歴からコミットを完全に削除します

  25. 25

    限られたコミット履歴をリモートGitにプッシュする

  26. 26

    履歴なしでgitリポジトリを複製する

  27. 27

    gitマージ後、ブランチのコミット履歴をgitロググラフに保持します

  28. 28

    filter-branchで作成者名を変更した後、Gitコミットが重複しています

  29. 29

    すべてのコミットをクリアし、git / githubの履歴を削除します

ホットタグ

アーカイブ