プッシュされていない既存のコミットメッセージを変更するにはどうすればいいですか? 質問する

プッシュされていない既存のコミットメッセージを変更するにはどうすればいいですか? 質問する

コミットメッセージに間違ったことを書きました。

メッセージを変更するにはどうすればよいですか? コミットはまだプッシュされていません。

ベストアンサー1

最新のコミットメッセージの修正

git commit --amend

エディタが開き、最新のコミットのコミット メッセージを変更できます。また、次のコマンドを使用して、コマンド ラインでコミット メッセージを直接設定することもできます。

git commit --amend -m "New commit message"

…ただし、これにより、複数行のコミット メッセージや小さな修正を入力するのが面倒になる可能性があります。

これを実行する前に、作業コピーの変更がステージングされていないことを確認してください。ステージングされていない変更もコミットされてしまいます。(ステージングされていない変更はコミットされません。)

すでにリモートブランチにプッシュしたコミットのメッセージを変更する

すでにコミットをリモートブランチにプッシュしている場合は、コミットをローカルで修正した後(上記のように)、コミットを強制的にプッシュする必要があると:

git push <remote> <branch> --force
# Or
git push <remote> <branch> -f

警告: 強制プッシュすると、リモート ブランチがローカル ブランチの状態で上書きされます。リモート ブランチにローカル ブランチにないコミットがある場合、それらのコミットは失われます

警告: すでに他の人と共有しているコミットを修正する場合は注意してください。コミットを修正すると、基本的にコミットが書き換えられ、異なる内容になります。シャID は、他の人があなたが書き換えた古いコミットのコピーを持っている場合に問題を引き起こします。古いコミットのコピーを持っている人は、自分の作業を新しく書き換えたコミットと同期させる必要がありますが、これは難しい場合があります。そのため、共有コミット履歴を書き換える場合は他の人と調整するか、共有コミットの書き換えを完全に避けるようにしてください。


対話型リベースを実行する

もう 1 つのオプションは、対話型リベースを使用することです。これにより、最新のメッセージでなくても、更新したいメッセージを編集できます。

Git squash を実行するには、次の手順に従います。

// n is the number of commits up to the last commit you want to be able to edit
git rebase -i HEAD~n

コミットを圧縮したら、e/rメッセージを編集するために を選択します。

コミットを編集中のターミナルのスクリーンショット

インタラクティブリベースに関する重要な注意事項

を使用すると、 n を超えるgit rebase -i HEAD~nコミットが発生する可能性があります。Git は最後の n コミットのすべてのコミットを「収集」し、その範囲内のどこかにマージがあった場合は、すべてのコミットも表示されるため、結果は n + になります。

良いヒント:

複数のブランチでこれを行う必要があり、コンテンツを修正する際に競合が発生する可能性がある場合は、git rerereそして、Git が自動的にそれらの競合を解決できるようにします。


ドキュメンテーション

おすすめ記事