繁体   English   中英

git checkout 所有文件

[英]git checkout all the files

如何摆脱存储库中所有文件中的所有更改?

假设我在一个分支,我做了一些改变。 git status在“未暂存的更改提交”中返回一组文件,我注意到我想删除所有文件中的所有这些更改。 如何使用单个命令执行此操作?

我知道我可以执行以下操作来只检出一个文件:

git checkout -- <file>

我注意到git checkout --单独返回所有未提交文件的列表。 但是,我找不到一种方法来结帐所有这些,例如git checkout --all

我检查了man git checkout并找不到任何东西。 我还看到了Git: Checkout all files except one并尝试了git checkout . 也没有工作。

我是否必须通过循环遍历git checkout --输出以编程方式执行此操作?

如果您位于工作目录的根目录,则可以执行git checkout -- . 检出当前 HEAD 中的所有文件并替换您的本地文件。

您还可以执行git reset --hard来重置您的工作目录并替换所有更改(包括索引)。

我发现有用的其他方法是:

git checkout <wildcard> 

例子:

git checkout *.html

更普遍:

git checkout <branch> <filename/wildcard>

如果您想“随时随地”检出所有文件

git checkout -- $(git rev-parse --show-toplevel)
  • 如果您位于跟踪文件的基本目录位置,则git checkout . 会起作用,否则它将不起作用

当然,您可以使用硬重置:

git reset --hard

此外,我正在使用允许指定模式的简单方法:

git checkout `git ls-files -m | grep "some pattern"`

所以这里的“某种模式”可能是文件夹或文件名或文件扩展名。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM