使用場景如下:
首先看一下我的提交(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 --continuerevert
僅僅是撤銷commit4的改動,缺省會生成乙個新的commit提交,但在它之後還有commit3
和commit2,commit1
,它們的改動不會被影響,依然保留在工作區中,因此可能產生衝突。你可以手動解決衝突後commit,但這卻是個麻煩且不優雅的方式。因為commit3,commit2,commit1這幾個commit的改動被一起合併在暫存區中,如果你修改的不止乙個檔案,那手動解決衝突將會非常麻煩。解決方式是,預設 不 生成新的commit,使用git revert --continue 按順序回滾。
git revert和git reset的區別
原文 git revert 是生成乙個新的提交來撤銷某次提交,此次提交之前的commit都會被保留 git reset 是回到某次提交,提交及之前的commit都會被保留,但是此次之後的修改都會被退回到暫存區 具體乙個例子,假設有三個commit,git st commit3 add test3.c...
git revert和git reset的區別
git revert 是撤銷某次操作,此次操作之前的commit都會被保留 git reset 是撤銷某次提交,但是此次之後的修改都會被退回到暫存區 具體乙個例子,假設有三個commit,git st commit3 add test3.c commit2 add test2.c commit1 a...
git revert和git reset的區別
git revert 是撤銷某次操作,此次操作之前的commit都會被保留 git reset 是撤銷某次提交,但是此次之後的修改都會被退回到暫存區 具體乙個例子,假設有三個commit,git st commit3 add test3.c commit2 add test2.c commit1 a...