硬复位一个文件

我目前有三个修改后的文件在我的工作目录中。 不过,我希望其中的一个被重置为HEAD状态。

在SVN中,我会使用svn revert <filename> (如果需要,接着是svn update <filename> ),但是在git中我应该使用git reset --hard 。 但是这个命令不能在一个文件上运行。

有没有办法在混帐丢弃单个文件的变化,并用新的HEAD副本覆盖它?

您可以使用以下命令:

 git checkout HEAD -- my-file.txt 

…它将更新my-file.txt的工作副本以及索引中的状态与HEAD中的状态。

--基本上是指: 把这个点之后的每个参数作为文件名 。 在这个答案的更多细节。 感谢VonC指出这一点。

假设你在当前分支的头部,将单个文件硬重置为HEAD的更简单的方法是:

 git checkout -- myfile.ext 

这是根据马克的回答 cxw的评论。 在这个典型的情况下,指定HEAD@并不重要。