質問: 既存のプッシュされていないコミットメッセージを変更する方法 コミットメッセージに間違ったことを書いた。メッセージを変更するにはどうすればいいですか。コミットはまだプッシュされていません。
回答: 最新のコミットメッセージの修正git commit --amend エディターが開き、最新のコミットのコミットメッセージを変更できます。また、次のコマンドラインでコミットメッセージを直接設定できます。git commit --amend -m "new commit message" ...ただし、これにより、複数行のコミットメッセージや小さな修正を入力するのが面倒になります。これを行う前に、作業コピーの変更stagedがないことを確認してください。そうしないと、それらもコミットされます。 (unstaged変更はコミットされません。)すでにリモートブランチにプッシュしたコミットのメッセージを変更するすでにコミットをリモートブランチにプッシュしている場合、 プッシュを強制的にプッシュする必要があります で:git push <remote> <branch> --force # or git push <remote> <branch> -f 警告:強制プッシュは、リモートブランチをローカルブランチの状態で上書きします。ローカルブランチにはないリモートブランチのコミットがある場合、それらのコミットは失われます。警告:すでに他の人と共有しているコミットの修正には注意してください。コミットの修正は本質的にrewritesそれらは異なる sha idを持っているため、他の人があなたが書き直した古いコミットのコピーを持っている場合に問題を引き起こします。古いコミットのコピーを持っている人は、自分の作業を新しく書き直されたコミットと同期する必要がありますが、これは難しい場合があります。完全に。インタラクティブなリベースを使用する別のオプションは、インタラクティブなリベースを使用することです。 これにより、最新のメッセージではない場合でも、更新するメッセージを編集できます。git squashを実行するには、次の手順を実行します。// x is the number of commits to the last commit you want to be able to edit git rebase -i head~x コミットを終了したら、メッセージを編集するためにe/rを選択します インタラクティブリベースに関する重要な注意事項git rebase -i head~xを使用すると、xコミットよりもmoreになる可能性があります。 gitは最後のxコミットのすべてのコミットを「収集」し、その範囲内のどこかにマージがあった場合、すべてのコミットも表示されるため、結果はx +になります。良いヒント:複数のブランチでそれを行う必要があり、コンテンツを修正するときに競合に直面する可能性がある場合は、 git rerere を設定し、gitにそれらの競合を自動的に解決させます。ドキュメンテーション git-commit(1)マニュアルページ git-rebase(1)マニュアルページ git-push(1)マニュアルページ