2

私はそのような独特のコミットログを持っています、

A --> B --> C --> D

ここで、各文字はコミットです。CはBの復帰であるように見えるので、基本的に履歴は次のようになります。

A --> D

BとCのコミットを「合計」する方法はありますか?変更はまだプッシュされていません。

4

3 に答える 3

3

TODO リストのおよびコミットをgit rebase -i HEAD~3表す行を実行および削除し、リベースを実行できます。BC

于 2012-10-29T23:58:57.190 に答える
1

インタラクティブなリベース以外の簡単な方法は次のとおりです。

git reset --hard A     # reset current branch to A
git cherry-pick D      # transplant commit D here

CD がコミットの全範囲である場合により適切に機能する、より一般的なコマンドもあります。

git rebase --onto A C  # transplant C..D onto A
于 2012-10-30T13:24:59.723 に答える
0

これを行う最も簡単な方法は、リセットを使用することです。

git reset --soft HEAD^^^
git add -A
git commit -C HEAD@{1}

最初のコマンドは、作業ツリーを D のように維持しながら、A を現在のコミットにします。次のコマンドで作業ツリーの状態をステージングします。次に、コミット D (HEAD は 1 時間前) からのメッセージを使用してコミットします。

于 2012-10-30T04:15:35.440 に答える