git 如何撤銷一次remote的master commit?除了在local reset后再push之外 有沒有在remote直接reset之類的呢?
2 回答

慕森卡
TA貢獻1806條經驗 獲得超8個贊
沒有,只能 git reset --hard
然后 git push -f
。
你的問題詢問的是如何撤銷 remote 的 commit,唯一的辦法就是本地修正然后又強制推送,并且很多人都已經提到,強制推送是非常壞的實踐,除非必要或者個人未公開項目或者小團隊項目(溝通成本較低)才可行。
貌似你想清理提交歷史,那么 git 相比于其它 VCS 在這方面絕對是非常在行的。你可以使用 git rebase
命令對歷史進行重構,可以重新排序、合并、拆分一些提交,總之完全足夠清理你所謂的臟歷史。如果你想要對整個歷史做某些確定的修改,還有 git fileter-branch
命令可用,非常靈活,相當值得深入。
說說我的提交流程吧,我一般是對一個文件進行修改直到達到我的目的后才開始進行提交,這個時候我也不是只直接做一次提交,而是使用 vim 和 vim-fugitive 插件,在 diff 模式下打開工作區和暫存區,然后在暫存區重新一步一步的重現我的修改,在適當的時候進行提交。由于我已經完成了整個修改,所以我很清楚每個修訂該誰先誰后,所以能夠做到比較干凈清晰和“原子性”(即一個提交只做一個特定的修改,而不是混合若干個修改)的提交,方便其他人進行代碼審閱。
- 2 回答
- 0 關注
- 230 瀏覽
添加回答
舉報
0/150
提交
取消