我目前在工作目录中有三个已修改的文件。但是我希望其中一个重置为 HEAD 状态。
在 SVN 中,我使用svn revert <filename>
(如果需要,然后是svn update <filename>
)但是在 git 中我应该使用git reset --hard
。但是,此命令无法在单个文件上运行。
有没有办法在 git 中丢弃单个文件更改并用新的 HEAD 副本覆盖它?
要将单个文件硬重置为 HEAD:
git checkout @ -- myfile.ext
请注意, @
是HEAD
缩写。旧版本的 git 可能不支持缩写形式。
要将单个文件硬重置为索引 ,假设索引为非空,否则为 HEAD:
git checkout -- myfile.ext
关键在于,为了安全起见, 您不希望从命令中省略@
或HEAD
,除非您特别指的是仅重置为索引 。
要恢复到上游 / 主站,请执行以下操作:
git checkout upstream/master -- myfile.txt