如何摆脱存储库中所有文件的所有更改?
说我在一个分支机构,我做了一些改变。 git status
返回“未提交更改的更改”中的一组文件,我注意到我想要删除所有文件中的所有这些更改。如何使用单个命令执行此操作?
我知道我可以执行以下操作来检查一个文件:
git checkout -- <file>
我注意到git checkout --
单独返回所有未提交文件的列表。但是,我无法找到一种方法来检查所有这些内容,例如git checkout --all
。
我查了man git checkout
但找不到任何内容。我也看到Git: Checkout all files except one并尝试了git checkout .
,但也没有工作。
我是否必须通过循环git checkout --
输出?
答案 0 :(得分:133)
如果您位于工作目录的根目录,则可以git checkout -- .
签出当前HEAD中的所有文件并替换您的本地文件。
您也可以git reset --hard
重置工作目录并替换所有更改(包括索引)。
答案 1 :(得分:2)
我认为有用的其他方法是:
git checkout <wildcard>
示例:
git checkout *.html
更一般地:
git checkout <branch> <filename/wildcard>
答案 2 :(得分:0)
如果您想“随时随地”检出所有文件
git checkout -- $(git rev-parse --show-toplevel)
答案 3 :(得分:0)
git checkout .
将起作用,否则将不起作用答案 4 :(得分:0)
当然你可以使用硬重置:
git reset --hard
此外,我正在使用允许指定模式的简单方法:
git checkout `git ls-files -m | grep "some pattern"`
所以这里的“某种模式”可以是文件夹或文件名或文件扩展名。