2016-08-07 4 views
1

私はgit rebase -i HEAD〜5を実行しましたが、私のコミットのfixup/squash 2をしたかったのですが、私のコミットは1人、他の人は4人です。 WTF。助けてください、他の誰かの他の4つのコミットを削除する方法?私はちょうどそれが私の1つのコミットを持ってほしい。git rebase -i HEAD〜5 HEAD〜5と私のコミットではない要求を引き出す

+0

あなたの質問を編集し、最新のコミットの図を含めてください。保持したいものと取り除きたいものを特定し、それ以上のコミットも表示します。 – Chris

+0

git rebase -i HEAD〜5は9999のコミットのリストを示しています。手動でそれらをすべて隠しておく必要がありますか? – katarina

+0

それはたくさんのように見え、また非常に興味深い数です。私たちがあなたを助けるためには、スクリーンショットをいくつか含めるか、それ以上の情報を共有する必要があります。 – Chris

答えて

1

git rebase -i HEAD~5を実行すると、すべてのコミットもマージで取得されます。
あなたはmerge commitでしたので、実際のコミットがより多くコミットされました。

例:
ここではログのスクリーンショット+ git rebase -i HEAD~5があり、その結果、17件のコミットが行われます。

ログをたどって、最も左のブランチの5つのコミットをカウントすると、他のすべてのコミットが途中で "収集"されていることがわかります。

enter image description here

+0

そのマージを取り除く方法を知っていますか? – katarina

+1

あなたは '--preserve-merges'を追加することができますが、範囲内の全てのコミットを表示します。 'git rebase -i HEAD〜5 --preserve-merges'は私が知っている限り、すべてのシーケンスでrebaseしてから避けることはできません – CodeWizard

1

git reflogに戻って、そこからそれを修正することができました。

関連する問題