1
我有興趣恢復推送提交,但也從圖中刪除它。
例如我有:git revert刪除提交
tag
A <— B <— C <— D <— E <— F
HEAD
我想刪除F
完全,所以我的圖表看起來像:
tag
A <— B <— C <— D <— E
HEAD
我怎樣才能做到這一點?
我有興趣恢復推送提交,但也從圖中刪除它。
例如我有:git revert刪除提交
tag
A <— B <— C <— D <— E <— F
HEAD
我想刪除F
完全,所以我的圖表看起來像:
tag
A <— B <— C <— D <— E
HEAD
我怎樣才能做到這一點?
嘗試重寫歷史記錄是錯誤的。
克隆/拉動它的人將很難整合你的變化,並最終推回你想要刪除的變化。
最好還原一次提交,它會在您的歷史記錄中追加一個「否定」提交。
git revert F
而只是把它
git push origin master
如果你知道自己在做什麼,或者不在乎打破一切,你可以改寫歷史:
git reset --hard HEAD^
將索引移回父提交(E)
git push --force
將新的分支引用推送到遠程存儲庫,無論它是否快進。
git reset --hard HEAD〜1 – 0andriy
爲了記錄,此操作是歷史重寫操作。因此,如果您已經推送了提交,而其他人已經推送了它並且您現在推送 - 強制提交(您明確必須執行的操作),那麼您將摧毀遠程歷史記錄。 – ckruczek