硬重置单个文件
我目前在我的工作目录中有三个修改过的文件。 不过,我希望其中一个被重置为HEAD状态。
  在SVN中,我会使用svn revert <filename> (如果需要,接着是svn update <filename> ),但在git中,我应该使用git reset --hard 。  但是,该命令不能在单个文件上运行。 
有没有办法在git中放弃单个文件的更改并用新的HEAD副本覆盖它?
您可以使用以下命令:
git checkout HEAD -- my-file.txt
  ...将更新my-file.txt的工作副本及其索引中的状态与HEAD中的状态。 
  --基本上是指:将这个点之后的每个参数都视为一个文件名。  在这个答案的更多细节。  感谢VonC指出这一点。 
重置为首位:
要将单个文件硬复位到HEAD,
git checkout @ -- myfile.ext
  请注意, @是HEAD简称。 
重置为索引:
要将单个文件硬复位到索引,假设索引非空,否则为HEAD:
git checkout -- myfile.ext
  重点在于,为了安全起见,除非特意指定重置为索引,否则不要在命令中留下@或HEAD 。 
你可以使用下面的命令来重置单个文件
git checkout HEAD -- path_to_file/file_name
  列出所有更改的文件以使用以下命令获取path_to_file/filename 
git status
