我的 git 存储库中有一堆修改过的文件,其中很多是 xml 文件。如何仅还原 xml 文件的更改(重置修改)?
问问题
12482 次
3 回答
67
你不需要find
or sed
,你可以使用 git 理解的通配符(不依赖于你的 shell):
git checkout -- "*.xml"
引号将阻止您的 shell 在执行之前将命令扩展为仅当前目录中的文件。
您还可以禁用 shell glob 扩展(使用 bash):
set -f
git checkout -- *.xml
当然,这将无法挽回地抹去您的更改!
于 2013-02-13T22:44:36.813 回答
5
谢谢大家的回复,但对我来说,我找到了最准确的解决方案:
git diff --name-only -- '*.xml' | sed 's, ,\\&,g' | xargs git checkout --
sed 是用户逃避困扰 xargs 的空间,并且一切工作都非常快速和准确。
于 2013-02-13T23:22:04.797 回答
1
find . -name '*.xml' -print0 | xargs -0 git checkout HEAD
或等效的东西,如果您的系统没有find
and xargs
。或者只是git checkout HEAD **/*.xml
在zsh
这种形式的 reqursive globbing 中或任何其他 shell 中。
于 2013-02-13T22:45:25.930 回答