git revert和git reset的區別

2021-06-07 03:43:54 字數 877 閱讀 4727

原文:

git revert

是生成乙個新的提交來撤銷某次提交,此次提交之前的commit都會被保留

git reset 

是回到某次提交,提交及之前的commit都會被保留,但是此次之後的修改都會被退回到暫存區

具體乙個例子,假設有三個commit, git st:

commit3: add test3.c

commit2: add test2.c

commit1: add test1.c

當執行git revert 

head~1時, commit2被撤銷了

git log可以看到:

revert "commit2":this reverts commit 5fe21s2...

commit3: add test3.c

commit2: add test2.c

commit1: add test1.c

git status 沒有任何變化

如果換做執行

git reset --soft(預設) 

head~1後,執行git log

commit2: add test2.c

commit1: add test1.c

執行git status, 則test3.c處於暫存區,準備提交。

如果換做執行

git reset --hard head~1後,

顯示:head is now at commit2,執行git log

commit2: add test2.c

commit1: add test1.c

執行git st, 沒有任何變化

另外:git revert 是撤消該commit,作為乙個新的commit。

Git revert使用和例子

撤銷前一次 commit git revert head 撤銷前前一次 commit git revert head 撤回指定commit id 比如 git revert 0818badf6882ea2664a205bc8ef3a85425bb2537 git revert commit idre...

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...