在 Git 中将本地更改恢复到以前的状态

Ashok Chapagai 2023年1月30日
  1. 在 Git 中恢复未暂存的本地更改
  2. 撤销 Git 中的本地修改
在 Git 中将本地更改恢复到以前的状态

假设 Mario 被分配了一个任务并且即将完成它,但是客户改变了他们的要求并要求 Mario 停止执行之前分配的任务,那么解决这个困境的完美解决方案是什么?

在本文中,你将学习如何在 Git 中恢复对先前状态的本地更改。

在 Git 中恢复未暂存的本地更改

如果你没有使用通常将文件推送到暂存区的命令 git add,你可以按照以下步骤轻松导航到之前的状态。

  • 使用 git status 确认文件的状态。
    $ git status
    On branch dev
    Your branch is up to date with 'origin/dev'.
    
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git restore <file>..." to discard changes in working directory)
    	modified:   frontend/src/index.tsx
    	modified:   frontend/src/common/components/index.tsx
    	modified:   frontend/src/common/components/index.css
    
  • 在已知状态的情况下,你可以根据自己的喜好使用以下任何选项。
    • 覆盖本地更改
    git checkout -- <file>
    
    • 保存本地更改以便以后在项目中使用,
    git stash
    
    • 放弃对文件所做的所有更改
    git reset --hard
    

撤销 Git 中的本地修改

如果你使用 git add 命令添加了文件,我们可以按照以下步骤将其恢复到以前的状态。

  • 使用 git status 确认添加文件的可用性。
  • 现在你已经看到了暂存的文件,你可以根据情况选择要恢复的文件并使用以下命令。
    1. 保留对文件的更改,但不要暂存。
    git restore --staged <file_name_with.path>
    
    1. 取消暂存所有保持更改的文件,
    git reset
    
    1. 丢弃所有更改并保存以备后用。
    git stash
    

    注意:使用 git stash pop 撤消 git stash 的效果并使用 git stash list 列出可用的存储。

    1. 丢弃一切
    git reset --hard
    
作者: Ashok Chapagai
Ashok Chapagai avatar Ashok Chapagai avatar

Ashok is an avid learner and senior software engineer with a keen interest in cyber security. He loves articulating his experience with words to wider audience.

LinkedIn GitHub

相关文章 - Git Revert