GIT:我想取消所有匹配特定模式的文件

Jac*_*cko 10 git filepattern

我想跑

git reset *.foo
Run Code Online (Sandbox Code Playgroud)

但这个错误了.

我想我需要使用烟斗,但我不知道该怎么做.

谢谢!

Ann*_*ale 9

现在git restore工作正常,因此对我来说最简单的是:

\n
git restore '*.foo'\n
Run Code Online (Sandbox Code Playgroud)\n

就像 @C\xc3\xa9sar Nore\xc3\xb1a 答案一样。

\n

然而,另一种非常简单且非常灵活的方法是:

\n
git diff --name-only --relative | grep '.foo' | xargs git restore\n
Run Code Online (Sandbox Code Playgroud)\n

它很灵活,因为您可以使用所有grep选项,甚至可以grep用其他选项替换。

\n


cdh*_*wie 8

for i in `git status --porcelain | grep '^D.*\.foo$' | sed 's/^D \+//'`; do
    git reset HEAD "$i"
    git checkout "$i"
done
Run Code Online (Sandbox Code Playgroud)


Jar*_*Par 6

如果您使用的是Powershell,则以下内容将起作用.

gci -re -in *foo | %{ git reset $_ } 
Run Code Online (Sandbox Code Playgroud)


Use*_*456 6

这应该适用于 cygwin 和 unix 环境

git reset $(git diff --name-only --cached | grep *.foo)
Run Code Online (Sandbox Code Playgroud)