git revert和git reset的區別

2021-06-23 09:53:46 字數 967 閱讀 8424

git revert

是撤銷某次操作,此次操作之前的commit都會被保留

git reset 

是撤銷某次提交,但是此次之後的修改都會被退回到暫存區

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

commit3: add test3.c

commit2: add test2.c

commit1: add test1.c

當執行git revert 

head~1時, commit2被撤銷了

git log可以看到:

commit1:add test1.c

commit3:add test3.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。

reset命令有三種執行方式:

1.git reset --mixed :此為預設方式。它會回退到某個版本,只保留原始碼,回退commit和index資訊

2.git reset --soft:回退到某個版本,只回退coomit資訊,不會恢復index資訊,如果還要提交,直接commit即可

3.git reset --hard:徹底回退到某個版本,本地的原始碼也會變為該版本的內容

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都會被保留,但是此次之後的修改都會被退回到暫存區 具體乙個例子,假設有三個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...