關於git的reset指令說明-soft、mixed、hard


    在開發過程中,git的版本管理越來越普及。在版本管理中,最常用和最重要的是重置提交的版本,恢復后悔做了的事。大家都知道用reset命令。但是有幾種形態需要整理共享一下,也方便我自己查閱。

一、首先解析以下這三個相關的狀態和概念,

1、HEAD:可以描述為當前分支最后一個提交。即本地的信息中的當前版本。

2、Index:在工作副本修改之后執行過git add操作的版本文件,可以commit了的。

3、Working Copy:工作副本是你正在修改,但是沒有執行任何git操作的文件。

 

總的來說,

代碼修改,還沒做任何操作的時候就是 Working Copy,

git add * 操作之后就是Index,

git commit 之后就是HEAD。如果代碼修改了之后進行git add 操作,然后git commit,那么所有三者(HEAD,INDEX(STAGING),WORKING COPY)都是相同的狀態,內容相同。

 

二、reset

  1. soft(更改HEAD)(恢復git commit的操作)

軟重置。本來origin的HEAD和本地的HEAD一樣,如果你指定--soft參數,Git只是單純的把本地HEAD更改到你指定的版本那么,整個過程中,就HEAD的定義發生了變化,其他像Working Copy 和Index都沒有變化。該參數用於git commit后,又要恢復還沒commit的場景,重新審查代碼,然后再推上去。

 

  2.hard(更改三者)

--hard參數將會將會重置(HEAD,INDEX(STAGING),WORKING COPY),強制一致。該參數用於在把工作副本改成一塌糊塗的時候,包括工作副本,一股腦恢復。有些就單純修改文件,其中有些git add了,有些git commit了,通通不管,可以一個命令恢復。

 

  3.mixed(default)(恢復git add的操作,包含恢復git commit的操作)

--mixed是reset的默認參數,也就是當你不指定任何參數時的參數。它將重置HEAD到另外一個commit,並且重置index以便和HEAD相匹配。

 

 

三、記憶方法

工作流中先是本地修改,然后git add,然后gitcommit。以本地修改為最高量級,以自己為中心。該參數用於你在本地改了文件一部分commit了,一部分剛好git add了,這時候你要恢復到你的工作副本狀態,要求再次審查代碼。

 

1、soft: 重置git commit

2、mixed: 重置git commit 和 git add

3、hard: 重置git commit 和 git add 和工作副本的修改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM