誤ってファイルを間違ったブランチにコミットした場合、通常はgit reset --hard HEAD~1
を使用します。ただし、この方法を使用すると、通常、コミットされたすべてのファイルが失われます。編集したファイルを失うことなく、コミットをリセットする方法はありますか?
使用禁止 --hard
使用する --soft
代わりに。
したがって、最新のコミットを削除したい場合は、次のようにします。
git reset --soft HEAD^
アレックスは非常に正しいですが、私は別のシーケンスを試してみたいと思うかもしれません:
まだ生まれていないブランチでコミットしたい場合:
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"
競合が原因で他のブランチへの変更を「フロート」しようとして失敗した場合、最後の例はうまく失敗しないことに注意してください。次に、競合を解決するには、スタッシュ/チェックアウト/適用する必要があります。
私の場合、私は代わりに--mixed
を使用することを好みます この簡単な説明
git reset --mixed HEAD^