【发布时间】:2012-04-19 12:10:25
【问题描述】:
我当前的 Java 项目中有一堆 Java 文件,我一直在修改它们,我想从项目的根文件夹(在 Ubuntu 中)一举将它们全部添加。
我试过了:
git add ./*.java
但这并没有。我尝试像这样转义星号:
git add ./\*.java
但这并没有。然后我试着像这样引用它:
git add "./*.java"
但这并没有。
“git add”的手册页给出了一个例子:
从文档目录下的所有 *.txt 文件中添加内容,并且 其子目录:
$ git add Documentation/\*.txt
我尝试使用上面的“文档”之类的目录来限定它,但这也不起作用。
我错过了什么?
[更新] 我在下面尝试了@GoZoner 的建议并且它有效,但仅如果文件是新的,而不是如果它们是预先存在的已更新。这很奇怪。
【问题讨论】:
-
你得到什么错误?
git add ./*.java或git add *.java应该在当前目录中添加所有Java 文件。如果成功,您将看不到任何信息。git status说什么? -
将 'git add' 替换为 'ls' 并重试。具体来说,'ls ./*.java'。如果“ls”列表中没有显示任何内容,那么“git add”也不会找到任何内容。
-
+1 到@GoZoner。 Fileglobbing 是由 shell 完成的,而不是被调用的程序。在同一模式上使用 ls 来测试您要添加的内容。
-
@JonathanLeffler:我没有收到任何错误,我只是通过“git status”看到之前未暂存的内容仍然未暂存。
-
@GoZoner(和 Dan Ray):“ls”当然不会列出任何文件,因为除非您使用 --recurse 选项,否则它不会递归。这不是正确的类比,因为 'git add 。递归并添加所有文件,而 'ls .'只显示当前目录。在我从文档中引用的 sn-p 中,它说“及其子目录”
标签: git version-control