1. 程式人生 > >git revert 撤銷中間的某次提交

git revert 撤銷中間的某次提交

使用場景如下:

首先看一下我的提交(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提交,但在它之後還有commit3commit2,commit1,它們的改動不會被影響,依然保留在工作區中,因此可能產生衝突。你可以手動解決衝突後commit,但這卻是個麻煩且不優雅的方式。因為commit3,commit2,commit1這幾個commit的改動被一起合併在暫存區中,如果你修改的不止一個檔案,那手動解決衝突將會非常麻煩。解決方式是,預設 生成新的commit,使用git revert --continue 按順序回滾。