我正在尝试使用 git add 命令将一些新创建的文件和其他一些编辑过的文件放到git中的暂存区域。我真正想要的是暂存除* .java 文件之外的所有文件(在我的当前目录和我项目中的每个子目录中)。我试图在没有成功的情况下完成这项工作。
pwd:/ d / myProject
这些都没有奏效:
git add !(*.java)
git add \!\(\*.java\)
git add \!\(*.java\)
git add !\(\*.java\)
有人可以帮助我完成这项工作吗?并且在某种程度上可以在这里使用正则表达式代替globs吗?
答案 0 :(得分:2)
您可以使用find
:
find . -type f ! -iname '*.java' -exec git add {} +
您还可以使用! -ipath <pattern>
跳过与模式匹配的路径,例如:
find . -type f ! -iname '*.java' ! -ipath './a/b/*c*' -exec git add {} +
答案 1 :(得分:2)
这实际上取决于shell的glob设置。您可以做的更多与系统无关的行为是使用find:
find . -not -iname '*.java' -exec git add '{}' \+