変更をコミットしましたが、変更セットにファイルを追加するのを忘れました。他のコミットの後、ファイルがコミットから欠落していることに気付きましたHEAD^4
。
以前のコミットを書き直して、欠落しているファイルを含めるにはどうすればよいですか?
変更をコミットしましたが、変更セットにファイルを追加するのを忘れました。他のコミットの後、ファイルがコミットから欠落していることに気付きましたHEAD^4
。
以前のコミットを書き直して、欠落しているファイルを含めるにはどうすればよいですか?
修正したいコミットのオプションを使用git rebase --interactive HEAD~4
して設定します。edit
この方法でリモート リポジトリにプッシュされたコミットを変更しないでください。その場合は、ファイルが欠落している新しいコミットを追加することをお勧めします。
これをより明確にするために、最初に現在の変更を で隠しておきますgit stash
。次に、git rebase --interactive HEAD~4
. テキスト エディターで次のように取得します (降順で 5 つのコミットを取得することに注意してください)。
pick 123e123 fifth last commit message
pick 321e122 fourth last commit message
pick 1d23e3f third last commit message
pick 987a987 second last commit message
pick 8a8a8a8 last commit message
変更エントリのプレフィックスを からpick
に変更しedit
ます。それedit 321e122 ...
はOPのためでしょう。
git rebase
エントリを順番に調べます。変更するのは 1 つだけなので、変更するエントリは 1 つだけです。でファイルを追加しgit add
、git commit --amend
それらの追加されたファイルで現在のコミットを修正します。
最後にgit rebase --continue
、次のファイルに移動します。1つしかないので、リベースは完了です
これらの 4 つのコミットをプッシュしていない場合は、次のように実行できます。
これらすべてのコミットのパッチ ファイルを作成します。
git format-patch -4
コミットを 4 つ巻き戻します。
git reset --hard HEAD~4
不足しているファイルを追加:
git add missing-file
でコミットし--amend
ます:
git commit --amend
保存したすべてのパッチを適用します。
git am *.patch
プッシュした場合は、このメソッドを使用しないでください。代わりに、失敗を認めて、この問題を修正する HEAD の上にもう 1 つコミットを作成してください。