git add ./*.java不起作用?

时间:2012-04-05 18:26:06

标签: git version-control

我当前的Java项目中有一堆Java文件,我一直在修改,我想从项目的根文件夹(在Ubuntu中)一下子添加它们。

我试过了:

git add ./*.java

但是没有这样做。我试着像这样逃避星号:

git add ./\*.java

但是没有这样做。然后我试着像这样引用它:

git add "./*.java"

但是没有这样做。

“git add”的手册页以此为例:

  

添加来自Documentation目录下的所有* .txt文件的内容   它的子目录:

           $ git add Documentation/\*.txt

我尝试使用上面的“文档”这样的目录来限定它,但这也不起作用。

我错过了什么?

[更新]我在下面尝试了@ GoZoner的建议并且它可以正常工作,但如果文件是新文件,而不是如果它们是预先存在的文件已更新。这很奇怪。

4 个答案:

答案 0 :(得分:1)

你需要逃避'。'

git add \./\*.java

作品。

$ git add \./\*.c
$ git status
# On branch br1
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   bang/boo.c
#   new file:   bing/one.c
#

答案 1 :(得分:0)

而不是做'git add'使用:

git status

这将显示哪些文件是新的(git未知)以及哪些文件已被修改。更重要的是,对于您的情况,“git status”将显示报告文件的完整路径。知道完整路径,您将能够使用'git add full-path-to.java'逐个添加它们,或者,如果一切看起来都可以提交,'git add -A'将全部添加它们。

答案 2 :(得分:0)

如果你想限制自己已经知道的文件,你可以将git-ls-files与过滤器结合起来:

git ls-files [path] | grep '\.java$' | xargs git add

您必须在此指定文件夹的路径。

在这里,您可以指示显示缓存的 c 和其他 o 文件,同时排除标准git排除:.git / info / exclude,.gitignore在每个目录中,以及用户的全局排除文件。

git ls-files -co --exclude-standard | grep '\.java$'| xargs git add

从这个答案Recursively add files by pattern

答案 3 :(得分:0)

git add -u *.java

哪里
-u 添加修改后的跟踪文件
*。java 是pathspec