ログに表示されなくなるように、リモート Git リポジトリから最後のコミットを削除するにはどうすればよいですか?
例えば、git log
次のようなコミット履歴が返ってきたら
A->B->C->D[HEAD, ORIGIN]
どうすれば行けますか
A->B->C[HEAD,ORIGIN]
ベストアンサー1
これによって、リモート リポジトリから既にフェッチ/プル/クローンした人にとっては「別の現実」が生まれることに注意してください。しかし、実際には非常に簡単です。
git reset HEAD^ # remove commit locally
git push origin +HEAD # force-push the new HEAD commit
ローカル リポジトリに残しておき、リモートからのみ削除する場合は、次のようにします。
git push origin +HEAD^:"$name_of_your_branch" # e.g. +HEAD^:master
一部のシェルは^
文字を解釈します。そのようなシェルの場合は、引用符/エスケープするか、 を使用します~
。
HEAD\^
'HEAD^'
HEAD~