シナリオ:最後の2つのコミットは不正であり、削除する必要があります(ローカルおよびリモート)。ワーキングツリーは、現在の変更を上書きするHEAD〜2に戻って来なければなりません。また、私がブランチで働いている唯一の人だと仮定して、リモートコミットを削除しても構いません。発散支店のプッシュを強制するための推奨構文は(2017年4月現在)です:2つ前のコミットを削除し、ローカルの変更を破棄し、リセットします。-hard vs checkout
git checkout HEAD~2
git push origin +HEAD
Question2対
git reset --hard HEAD~2
git push origin +HEAD
:
の違いは何ですか?
git push origin +HEAD
vs
git push origin MyBranchName --force
'checkout'コマンドは混乱します。場合によっては、変更を破棄するために使用する必要があります。たとえば、次のようにします。myFilenameを最新のコミットから戻します: 'git checkout HEAD - myFilename'。しかし 'git reset -hard HEAD-myFilename'は間違っています(致命的:パスでハードリセットできません) – Polymerase