如何撤消对特定文件的本地更改
How to undo local changes to a specific file
我正在尝试撤消对特定文件的本地更改。什么都没有提交。
当我想还原所有更改时,我可以执行 git revert --reset HEAD
。但是,在这种情况下,我不想还原对所有文件的所有更改。
即使阅读了 git-revert(3)
手册页,我也不清楚或不明白如何仅还原一个文件:
NAME
git-revert - Revert some existing commits
SYNOPSIS
git revert [--[no-]edit] [-n] [-m parent-number] [-s] <commit>...
git revert --continue
git revert --quit
git revert --abort
...
这与 How to revert a specific file in a old commit on git 类似,但未执行任何提交。与 OP 不同,OP 想要回到任意提交,我只希望文件 return 到 MASTER 的副本。
在 SVN 下,我会删除有问题的文件,然后执行 svn update
。
如何将更改还原到单个文件?
你不想要 git revert
。这会撤消先前的提交。您希望 git checkout
从 master 获取 git 的文件版本。
git checkout -- filename.txt
一般来说,当你想对单个文件执行git操作时,使用-- filename
。
2020更新
Git introduced 版本 2.23.0
中的新命令 git restore
。因此,如果你有 git 版本 2.23.0+
,你可以简单地 git restore filename.txt
- 它与 git checkout -- filename.txt
做同样的事情。这个命令的文档确实注意到它目前是实验性的。
我正在尝试撤消对特定文件的本地更改。什么都没有提交。
当我想还原所有更改时,我可以执行 git revert --reset HEAD
。但是,在这种情况下,我不想还原对所有文件的所有更改。
即使阅读了 git-revert(3)
手册页,我也不清楚或不明白如何仅还原一个文件:
NAME
git-revert - Revert some existing commits
SYNOPSIS
git revert [--[no-]edit] [-n] [-m parent-number] [-s] <commit>...
git revert --continue
git revert --quit
git revert --abort
...
这与 How to revert a specific file in a old commit on git 类似,但未执行任何提交。与 OP 不同,OP 想要回到任意提交,我只希望文件 return 到 MASTER 的副本。
在 SVN 下,我会删除有问题的文件,然后执行 svn update
。
如何将更改还原到单个文件?
你不想要 git revert
。这会撤消先前的提交。您希望 git checkout
从 master 获取 git 的文件版本。
git checkout -- filename.txt
一般来说,当你想对单个文件执行git操作时,使用-- filename
。
2020更新
Git introduced 版本 2.23.0
中的新命令 git restore
。因此,如果你有 git 版本 2.23.0+
,你可以简单地 git restore filename.txt
- 它与 git checkout -- filename.txt
做同样的事情。这个命令的文档确实注意到它目前是实验性的。