0

多くのファイルを変更し、それらを Git ステージング領域に追加しました。その後、それらをコミットする前に、前のコミットのコミット メッセージを変更する必要があることに気付きました。そのためgit commit --amend、変更ログを確認せずにコミット メッセージを変更しました。さて、それはステージング領域のファイルを以前のコミットにも追加しました。

以前のコミットを元の形式で作成し、変更したファイルをステージング領域に戻して、それらを個別にコミットできるようにするにはどうすればよいですか?

価値があるのは、最初に変更をコミットしてから、を使用してコミットメッセージの履歴を変更する必要があることに気づきましたgit rebase -i

4

2 に答える 2

3

を使用して、以前のコミットの以前の状態の SHA1 を見つけることができます。

git reflog

このハッシュを使用すると、現在のブランチを以前の状態に戻すことができます。

git reset --soft <SHA1>

この後、変更を隠してgit commit --amendから、コミットメッセージを変更できます。

于 2015-01-22T14:40:33.843 に答える
1

reflog のコミット ID の値に基づいて、次の手順を実行します。

git reflog -5 #I assume this will be good enough; increase the value as needed
git reset --hard <commit-with-bad-message>
git commit --amend -m '<New message>'
git read-tree --reset -u <commit-that-had-extra-files>

あなたは今、あなたが以前にいたいと思っていた場所にいるはずです。仕事を続けてください。

于 2015-01-22T14:46:05.493 に答える