私がやろうとしていること:gitヒストリをクリーンアップする方法特定のコミットがプッシュされた後にそれらを削除しますか?
私は機能を完了しました。
git add -A; git commit -m "feature A complete"
その後、私はいくつかのことを忘れていました。
A238ad1 feature A missed something 3
3238adX feature A missed something 2
1238ad7 feature A missed something 1
111AAA2 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"
今私の歴史はこのようになりますすべてのmissed something
コミットして
111AAA2 feature A complete
コミットfeature A complete
にマージ。
私はgit rebase -i HEAD~4
が正しい方法だと知っていますが、実際に履歴を整理するために悪いコミットを取り除くわけではありません。
他の記事にはgit commit --fixup
コマンドとgit rebase -i --autosquash
がありますが、正しく動作するようにはなっていません。私はこれが超簡単だと確信しています、私は今日それからちょうど外です。この場合
何も削除しない理由は、対話型のリベース中にこれらのコミットと何を行うべきかを指定していないためです。 'squash'でデフォルトの' pick'を変更する必要があります。このようにしてお互いの上にコミットし、最後にコミットを編集するチャンスが与えられます –