0

私がやろうとしていること:

機能を完成させました。

git add -A; git commit -m "feature A complete"

それから、私はいくつかのことを見逃していることに気づきました。

git add -A; git commit -m "feature A missed something 1"
git add -A; git commit -m "feature A missed something 2"
git add -A; git commit -m "feature A missed something 3"

今、私の履歴は次のようになります。

A238ad1 feature A missed something 3
3238adX feature A missed something 2
1238ad7 feature A missed something 1
111AAA2 feature A complete

私はそれを次のようにしたい:

111AAA2 feature A complete

すべてのmissed somethingコミットがコミットにマージされfeature A completeます。

正しい方法であることはわかってgit rebase -i HEAD~4いますが、実際には悪いコミットを削除して履歴をクリーンアップするわけではありません。

他の記事でgit commit --fixupコマンドとがあることに気付きましたgit rebase -i --autosquashが、正しく動作していません。これはとても簡単だと思います。今日はこれで終わりです。

4

1 に答える 1

1

この場合、対話型リベースを使用します

これは、次を使用して開始できます。

git rebase -i 

含める頭の数が続きます

git rebase -i HEAD~5

ここで、HEAD~5最後の 5 つのコミットを示します

その後、さらにオプションを使用してコミットを 1 つにまとめ、メッセージを編集できます。オプションの代わりにpick書き込みのsquash代わりに

押しつぶす

ご覧のとおり、 のショートカットであるオプションpickを変更します。このファイルを保存して閉じると、インタラクティブなリベースが開始され、押しつぶすように指定したコミットが に押しつぶされます。押しつぶした後、新しいコミット メッセージを入力するよう求められます。新しいメッセージを入力してヒットすれば完了です。ssquash21b4e04 Fixed missing bad practiceenter

于 2016-08-01T22:38:18.897 に答える