24

ファイルを誤って間違ったブランチにコミットした場合、通常はgit reset --hard HEAD~1. ただし、この方法を使用すると、通常、コミットされたすべてのファイルが失われます。編集したファイルを失わずにコミットをリセットする方法はありますか?

4

3 に答える 3

49

代わりに--hard使用しないでください。--soft

したがって、最新のコミットを削除したい場合は、次のようにします。

git reset --soft HEAD^

于 2012-07-14T08:23:42.397 に答える
5

アレックスは非常に正しいですが、別のシーケンスを試してみたくなるかもしれません。

まだ生まれていないブランチでコミットしたい場合:

git branch newbranch
git reset --hard HEAD^

既存のブランチでコミットしたい場合:

git checkout otherbranch
git cherry-pick firstbranch
git checkout firstbranch
git reset --hard HEAD^

アレックスの答えの完全な例

git reset --soft HEAD^
git checkout otherbranch
git commit -am "Message"

他のブランチへの変更を "フローティング" しようとして競合が原因で失敗した場合、最後の例はあまりうまくいかないことに注意してください。次に、競合の解決に入るために、スタッシュ/チェックアウト/適用する必要があります。

于 2012-07-14T09:57:39.170 に答える