git reset 與 git revert 的區(qū)別

git reset --hard --soft 與 git revert 的作用:

  • 文件從暫存區(qū)回退到工作區(qū)

  • 版本回退

git簡單的分為三個區(qū)域 :

1、工作區(qū)(working directory)

2、暫緩區(qū)(stage index)

3、歷史記錄區(qū)(history)

git reset --hard xxx

hard (修改版本庫,修改暫存區(qū),修改工作區(qū))

--hard HEAD~1 (或是版本號)意為將版本庫回退1個版本,但是不僅僅是將本地版本庫的頭指針全部重置到指定版本,也會重置暫存區(qū),并且會將工作區(qū)代碼也回退到這個版本

image.png

git reset --soft xxx

  • soft (修改版本庫,保留暫存區(qū),保留工作區(qū))

  • --soft HEAD~1 意為將版本庫軟回退1個版本,所謂軟回退表示將本地版本庫的頭指針全部重置到指定版本,且將這次提交之后的所有變更都移動到暫存區(qū)。

image.png

git revert xxx

  • revert
    -- git revert 也是撤銷命令,區(qū)別在于reset是指向原地或者向前移動指針,git revert是創(chuàng)建一個commit來覆蓋當(dāng)前的commit,指針向后移動。
image.png

git revert和git reset的區(qū)別

git revert與git reset最大的不同是,git revert 僅僅是撤銷某次提交,而git reset會將撤銷點之后的操作都回退到暫存區(qū)中。

1、git revert是用一次新的commit來回滾之前的commit,git reset是直接刪除指定的commit。

2、在回滾這一操作上看,效果差不多。但是在日后繼續(xù)merge以前的老版本時有區(qū)別。

因為git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch時,導(dǎo)致這部分改變不會再次出現(xiàn),但是git reset是之間把某些commit在某個branch上刪除,因而和老的branch再次merge時,這些被回滾的commit應(yīng)該還會被引入。

3、git reset 是把HEAD向后移動了一下,而git revert是HEAD繼續(xù)前進(jìn),只是新的commit的內(nèi)容和要revert的內(nèi)容正好相反,能夠抵消要被revert的內(nèi)容。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • git reset --hard xxx 總的來說,git reset 命令用于將現(xiàn)在的版本回滾到過去的某個版本。...
    饑人谷_Zachary閱讀 475評論 0 0
  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,853評論 1 26
  • 每一個清晨 當(dāng)陽光刺眼、當(dāng)鬧鈴震耳 這時候,我開始匍匐向前 向前,這是我美好的祝愿 迷蒙的眼,松散的手 掙扎,神秘...
    憬希閱讀 294評論 0 1
  • 我們知道, 用PHP的json_encode來處理中文的時候, 中文都會被編碼, 變成不可讀的, 類似”\u...
    西貝巴巴閱讀 1,659評論 0 0
  • 感恩這兩天有兩個老人需要金錢幫助感恩他們給我機(jī)會讓我種下財富的種子,同時希望老人家這個冬天溫暖健康。 感恩C先生今...
    德勝閱讀 271評論 0 1

友情鏈接更多精彩內(nèi)容