1. ホーム
  2. git

[解決済み] git のコミットを削除しても、変更は維持できますか?

2022-03-18 05:49:41

質問

開発ブランチの1つで、コードベースにいくつかの変更を加えました。現在取り組んでいる機能を完成させる前に、いくつかの機能のデモを行うために現在のブランチを master に切り替える必要がありました。しかし、単に "git checkout master" を実行しただけでは、開発ブランチで行った変更がそのまま残ってしまい、master の機能の一部が壊れてしまいました。そこで、開発用ブランチの変更をコミットメッセージ "temporary commit" でコミットし、デモ用に master をチェックアウトすることにしました。

デモが終わり、開発ブランチに戻ったので、自分が行った変更を保持したまま、"temporary commit"を削除したいのですが、どうすればいいですか?それは可能でしょうか?

解決方法を教えてください。

こんな簡単なことです。

git reset HEAD^

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

git reset がないと --hard または --soft を移動させます。 HEAD を指定すると、ファイルを変更することなく指定したコミットを指すようになります。 HEAD^ は、現在のコミットの (最初の) 親コミットを指します。この場合は、一時的なコミットの前のコミットです。

他の方法として、通常通り実行し、次のコミットポイントで代わりに実行することも可能であることに注意してください。

git commit --amend [-m … etc]

となり、代わりに 編集 は最新のコミットであり、上記と同じ効果があります。

この場合、(ほぼすべての git の答えと同様に) 他の誰かがそのコミットをプルした可能性のある場所に、すでにその悪いコミットをプッシュしていると問題が発生する可能性があることに注意しましょう。これを避けるために