如何撤消对特定文件的本地更改

我正在尝试撤销对特定文件的本地更改。目前还没有任何行动。

当我想恢复所有更改时,可以执行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
...

这类似于如何在git上恢复旧提交中的特定文件,但是没有执行提交。与OP不同,OP希望返回任意提交,我只想让文件返回到MASTER的副本。

在SVN下,我只删除有问题的文件,然后执行svn update

如何将更改还原到单个文件?

317140 次浏览

你不需要git revert。这将撤销先前的提交。你想要git checkout从master获取git的文件版本。

git checkout -- filename.txt

一般来说,当你想对单个文件执行git操作时,使用-- filename



2020年更新

Git 介绍了在版本2.23.0中添加了一个新的命令git restore。因此,如果你有2.23.0+版本的git,你可以简单地git restore filename.txt -它做的事情与git checkout -- filename.txt相同。该命令的文档指出,它目前还处于试验阶段。