Gitコミットを削除しても変更は保持できますか? 質問する

Gitコミットを削除しても変更は保持できますか? 質問する

開発ブランチの 1 つで、コードベースにいくつか変更を加えました。作業中の機能を完成させる前に、現在のブランチをマスター ブランチに切り替えて、いくつかの機能をデモする必要がありました。しかし、「git checkout master」を使用しただけでは、開発ブランチで行った変更も保持され、マスターの一部の機能が壊れてしまいました。そこで、コミット メッセージ「temporary commit」を使用して開発ブランチの変更をコミットし、デモ用にマスターをチェックアウトしました。

デモが終了し、開発ブランチでの作業に戻ったので、変更内容を保持したまま「一時コミット」を削除したいと思います。これは可能ですか?

ベストアンサー1

それは次のように簡単です:

git reset HEAD^

注: 一部のシェルでは^特殊文字として扱われます(たとえば、一部のWindowsシェルやグロビングを有効にした ZSH) なので、そのような場合には引用符を付け"HEAD^"たり使用したりする必要があるかもしれません。HEAD~1

git reset--hardまたはを指定しないと、ファイルは変更されずに、指定されたコミットを指すようになります。--soft、現在のコミットの (最初の) 親コミットを参照します。この場合、一時的なコミットの 1 つ前のコミットです。HEADHEAD^

別のオプションとして、通常どおり実行し、次のコミット ポイントで代わりに以下を実行することもできます。

git commit --amend [-m … etc]

代わりに最新のコミットを編集し、上記と同じ効果が得られます。

(ほぼすべてのgitの回答と同様に)すでに悪いコミットをプッシュして、他の誰かがプルした可能性がある場合は、問題が発生する可能性があります。それを避けるようにしてください。

おすすめ記事