如何在git中恢复对某种类型文件的未经修改的更改

Muj*_*vic 27 git git-revert

我的git存储库中有一堆修改过的文件,其中很多都是xml文件.如何还原仅xml文件的更改(重置修改)?

Cha*_*esB 54

你不需要find或者sed,你可以使用通配符,因为git理解它们(不依赖于你的shell):

git checkout -- "*.xml"
Run Code Online (Sandbox Code Playgroud)

引号将阻止shell在执行之前将命令仅扩展到当前目录中的文件.

您还可以禁用shell glob扩展(使用bash):

set -f
git checkout -- *.xml
Run Code Online (Sandbox Code Playgroud)

当然,这将无可挽回地抹去你的变化!

  • `*/*.xml` 也不是“所有目录中的 xml 文件”。 (2认同)

Muj*_*vic 5

谢谢大家的回复,但我找到了,对我来说,最准确的解决方案:

git diff --name-only -- '*.xml' | sed 's, ,\\&,g' | xargs git checkout --
Run Code Online (Sandbox Code Playgroud)

sed 是逃避困扰 xargs 的空间的用户,并且一切都非常快速和准确。