git revert 撤銷中間的某次提交
阿新 • • 發佈:2018-11-06
使用場景如下:
首先看一下我的提交(commit1這種都是指的是提交的commit-id)
commit1
commit2
commit3
commit4
commit5
commit6
現在想把commit4扔掉,只需
git log 從這裡拿到commit4的id(當然咱們這裡已經拿到了,coomit4就是)
git revert commit4 正常情況下就撤銷成功了
git log 可以看一下,多了一次提交,撤銷commit4的提交
但是某些情況下,可能會產生衝突,解決方法如下:
1.手動解決衝突,然後提交
2.git revert --abort 取消撤回,不解決衝突了
3.git revert --continue revert
僅僅是撤銷commit4的改動,預設會生成一個新的commit提交,但在它之後還有commit3
和commit2,commit1
,它們的改動不會被影響,依然保留在工作區中,因此可能產生衝突。你可以手動解決衝突後commit,但這卻是個麻煩且不優雅的方式。因為commit3,commit2,commit1這幾個commit的改動被一起合併在暫存區中,如果你修改的不止一個檔案,那手動解決衝突將會非常麻煩。解決方式是,預設 不 生成新的commit,使用git revert --continue 按順序回滾。