コミットしてマスターにプッシュしました。ちょっとしたタイプミスがあったので、別のコミットではなく、このコミットの一部として修正したいと思います。この変更を現在のプッシュされたコミットに追加することは可能ですか?
2 に答える
あなたは出来る
git commit --amend
git push -f
しかし、あなたはすべきではありません。リモートサーバーにプッシュされたら、履歴を変更しないでください。次のコミットでタイプミスを修正するか、それを単独でコミットする必要があります。単一の変更を含むコミットには何の問題もありません。一方、コミットは通常、単一の「トピック」のみをカバーする必要があります。「多くのタイプミス」コミットを作成できます;)
公の歴史を書き換えることは悪い考えです
履歴を書き換えると、かなりの問題が発生する可能性があることに注意してください。別の開発者/チェックアウトがすでにあなたのタイプミス コミットを取り下げている可能性がある場合は、あなたが求めていることを実行しないでください。問題は、たとえば、今すぐマスターからプルすると、コミットが中断されてしまうことです。あなたが履歴を書き換えて、もう一度プルしようとすると、私のチェックアウトはあなたのマスター ブランチのタイムラインに表示されなくなります。紛らわしいのは絶対的な最小値です。それを通常の方法 (リベース) で修正し、マスターにプッシュすると、中断されたコミットはマスター ブランチの履歴に戻され、次のプルでは履歴にも戻されます。
コミット修正
途中で警告...
最後のコミットを更新するには、次のようにします。
git checkout master
git pull
hack hack hack
git commit -va --amend
#................^
これにより、最後のコミットの内容が更新されます。
ローカルの master ブランチと一致するようにリモートを更新するには
git push
# READ THE WARNING
git push -f
これにより、更新されたコミットが含まれるようにリモートの履歴が強制的に更新され、「同じ」コミットの古いバージョンが削除されます。それが問題です。この状況では、負けて、git が警告しています。