Git - 撤銷更改


Git 提供了多種撤銷更改的方法,具體取決於這些更改是未暫存、已暫存、已提交還是已推送到遠端儲存庫。

使用 --amend 撤銷提交

如果您忘記包含某些更改或檔案,可以使用 **--amend** 選項新增它們。此命令允許您將已暫存的更改新增到上一次提交中。

要使用 **--amend** 選項撤銷提交,請執行以下命令

  • 您進行了一些更改並提交了它們。

    git commit -m "First Commit"  
    

    提交後,您注意到在提交之前忘記暫存某個檔案中的某些更改。

  • 您可以使用以下命令新增其他更改並暫存該檔案

    git add main.html
    
  • 您可以將 **--amend** 選項與 **git commit** 命令一起使用,以將已暫存的更改包含在上一次提交中。此命令將已暫存的更改新增到最近的提交中。

    git commit --amend   
    

取消暫存已暫存的檔案

如果您不小心使用 **git add *** 暫存了兩個檔案,但您想分別提交它們,則可以在保留另一個檔案已暫存狀態的同時取消暫存一個檔案。

要取消暫存已暫存的檔案,請使用以下命令

  • 如果您不小心使用 **git add *** 命令暫存了兩個檔案。此命令將暫存當前目錄中的所有更改。

    git add *  
    

    您可以使用 **git status** 命令獲取儲存庫的當前狀態,包括已暫存和未暫存的更改。

    git status  
    
  • 當您執行以下命令時,它將從暫存區中刪除該檔案,並撤消對其進行的任何更改。

    git reset HEAD <file_name>
    
  • 使用 **git status** 命令再次檢查儲存庫的狀態,以確保已完成所需的修改。

git add *

git status
命令 **git reset** 通常是安全的,因為它不會修改工作目錄中的檔案。但是,當使用 **--hard** 時,它可能會完全刪除更改。

取消修改已修改的檔案

您可以使用以下命令取消修改已修改的檔案

  • 檢查當前儲存庫的狀態,並檢視哪些檔案有未提交的更改。

    git status
    
  • 將 **main.html** 檔案恢復到其原始狀態。

    git checkout -- main.html
    

    此命令將刪除對 **main.html** 檔案所做的任何修改,並將其恢復到上次提交的狀態。

  • 您可以透過再次執行 **git status** 命令來驗證更改是否已恢復。

git status
使用 **git checkout -- <file>** 不安全,因為它會立即用檔案的最新已暫存或已提交版本替換任何本地更改。在使用此命令之前,請確保您確實想要刪除當前更改。

撤銷更改 - git restore

Git 2.23.0 版引入了新的命令 **git restore**,可以用它代替 **git reset** 來撤銷更改。

使用 git restore 取消暫存已暫存的檔案

您可以使用以下命令使用 **git restore** 命令取消暫存已暫存的檔案

  • 如果您使用命令 **git add *** 暫存了兩個檔案。此命令將暫存當前目錄中的所有更改。

    git add *  
    

    您可以使用 **git status** 命令獲取儲存庫的當前狀態,包括已暫存和未暫存的更改。

    git status  
    
  • 您可以使用 **git restore** 代替 **git reset** 從暫存區中刪除檔案並撤消對其進行的任何更改。

    git restore --staged <file_name>
    
  • 使用 **git status** 命令確認所需的更改是否已完成。

git add *

git status

使用 git restore 取消修改已修改的檔案

您可以使用以下命令使用 git restore 取消修改已修改的檔案

  • 檢查當前儲存庫的狀態,並檢視哪些檔案有未提交的更改。

    git status
    
  • 將 **main.html** 檔案恢復到其原始狀態。

    git restore main.html
    

    此命令將刪除對 **main.html** 檔案所做的任何修改,並將其恢復到上次提交的狀態。

  • 您可以透過執行 **git status** 命令確認對 **main.html** 的更改是否已撤消。

git status
使用 git restore <file> 不安全,因為它會立即用檔案的最新已暫存或已提交版本替換任何本地更改。在使用此命令之前,請確保您確實想要刪除當前更改。
廣告