在 Git 中将本地更改恢复到以前的状态
Ashok Chapagai
2023年1月30日
假设 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
确认添加文件的可用性。 -
现在你已经看到了暂存的文件,你可以根据情况选择要恢复的文件并使用以下命令。
- 保留对文件的更改,但不要暂存。
git restore --staged <file_name_with.path>
- 取消暂存所有保持更改的文件,
git reset
- 丢弃所有更改并保存以备后用。
git stash
注意:使用
git stash pop
撤消git stash
的效果并使用git stash list
列出可用的存储。- 丢弃一切
git reset --hard
作者: Ashok Chapagai