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> 不安全,因为它会立即用文件的最新已暂存或已提交版本替换任何本地更改。在使用此命令之前,请确保您确实想要删除当前更改。
广告