Git命令——撤銷操作


Git用於撤銷的操作主要有以下幾個:

  1. $ git reset HEAD <file>...  # 撤銷暫存的文件
  2. $ git reset --hard HEAD    # 撤銷工作目錄中所有未提交文件的修改內容
  3. $ git checkout -- <file>...   # 撤銷指定未提交文件的修改內容
  4. git reset [--soft | --mixed | --hard]  [<commitID>]  # 回退代碼至某次提交

 

1. 撤銷暫存的文件

對於已經暫存的文件,可以 $ git reset HEAD <file>... 命令來取消暫存。例如,文件file2.md已暫存:

運行 $ git reset HEAD <file>... 命令后,當前文件的狀態為:

 

2. 撤銷工作目錄中所有未提交文件的修改內容

不加選項地調用 git reset 命令並不危險,因為它只會修改暫存區域,並不會被修改工作目錄內的文件。但是,如果在調用的時候在調用時加上 --hard 選項,會撤銷工作目錄中所有未提交文件的修改內容。例如,當前文件的狀態為:

運行 $ git reset --hard HEAD 命令后文件的狀態為:

 

3. 撤銷指定未提交文件的修改內容

如果你並不想保留對某個文件的修改,需要將其將它還原成上次提交時的樣子(或者剛克隆完的樣子,或者剛把它放入工作目錄時的樣子)。可以使用 git checkout -- <file>... 命令,例如:

 

注意git checkout -- [file] 是一個危險的命令,你對那個文件做的任何修改都會消失,除非你確實清楚不想要那個文件的修改內容了,否則不要使用這個命令。

 

4. 回退代碼至某次提交

 

 命令:$ git reset [--soft | --mixed | --hard]  [<commitID>]

  --soft:修改本地倉庫里面的數據為commitID對應快照的數據,所有更改過的文件都將變為“待提交的修改”。

  --mixed:修改本地倉庫和暫存區里面的數據為commitID對應快照里的數據,更改后的文件將被保留,但沒有標記為提交(是git reset的默認操作)。

  --hard:修改本地倉庫、暫存區和工作區里面的數據為commitID對應快照的內數據,從<commitID>開始對工作樹中跟蹤的文件所做的任何更改都將被丟棄。

 

 



 


免責聲明!

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



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