如何从我的版本库中删除所有文件中的更改?
假设我在一个分支上并且进行了一些更改。 git status
返回"Changes not staged for commit"中的一组文件,我发现我想要删除所有文件中的这些更改。如何通过单个命令完成这个操作?
我知道我可以使用以下方式来仅检出一个文件:
git checkout -- <file>
我注意到单独使用git checkout --
会返回所有未提交的文件列表。然而,我找不到一种类似于git checkout --all
的方式来检出它们。我查看了
man git checkout
,但没有找到任何有用的信息。我还看了Git:检出除一个文件之外的所有文件,尝试了git checkout .
,但也没有起作用。我需要通过循环遍历
git checkout --
输出来以编程的方式解决此问题吗?
git checkout -- .
只会将更改重置为索引的状态。因此,如果您已经将文件添加到索引中,它就会将其重置为该状态。另一方面,git reset --hard
还会丢弃索引,因此,例如,如果您已将未跟踪的文件添加到索引中(以开始跟踪它们),它们也会被删除。git checkout
还允许通过传递更具体的路径来部分恢复工作目录,这可能非常有用。 - pokegit checkout --force
,git reset --hard
。 - tjalling