Git(版本1.7.11-preview20120620)-can';t添加主项目文件夹下的所有子文件夹

Git(版本1.7.11-preview20120620)-can';t添加主项目文件夹下的所有子文件夹,git,add,Git,Add,我很难找到这个问题的答案,所以我在这里问 我在Windows7 Ultimate 64位上安装了上面提到的Git for Windows版本 我有一个现有文件夹,其中有许多子文件夹,其中许多子文件夹的文件夹名称中有空格,其中包含的许多文件中也有空格。我希望顶层文件夹成为我的“项目”文件夹。我在那个文件夹中初始化了Git 当我运行“git status”时,我会收到预期的“untracked files”消息,所以我键入“git add.” 所有文件都会添加到我的项目中进行跟踪,但没有子文件夹。在

我很难找到这个问题的答案,所以我在这里问

我在Windows7 Ultimate 64位上安装了上面提到的Git for Windows版本

我有一个现有文件夹,其中有许多子文件夹,其中许多子文件夹的文件夹名称中有空格,其中包含的许多文件中也有空格。我希望顶层文件夹成为我的“项目”文件夹。我在那个文件夹中初始化了Git

当我运行“git status”时,我会收到预期的“untracked files”消息,所以我键入“git add.”

所有文件都会添加到我的项目中进行跟踪,但没有子文件夹。在手动添加每个子文件夹(啊!)之后,我遇到了一堵墙,上面有一个特定的子文件夹,无论我怎么做都无法添加。文件夹名中有空格,但我已成功添加了其他带有空格的子文件夹。但是,我无法添加这个。文件夹的名称为“\u 04\u Spry Script Tests”

在谷歌上做了很多搜索之后,我尝试了很多方法。这是我记得做过的所有事情的清单。可能还有其他的,但(我的缺点)我没有记录我尝试过的每一个实例。很抱歉

git add .
git add "_04_Spry Script Tests"/.
git add "_04_Spry Script Tests/".
git add */.
git add "_04_Spry*"/.
git add "_04_Spry"*/.
find . -iname "*.*" | xargs git add
git add */\*.*
git add "_04_Spry Script Tests/"\*.*
有人能帮我吗?我做错了什么或错过了什么

我以为“git add”在主项目文件夹下添加了所有内容。我弄错了吗

提前感谢任何花时间来帮助我的人。这让我很烦=(

巢穴


对@BrianCampbell提问的答复

嗨,布莱恩:

谢谢你的回复

是的,子文件夹中有文件

否,
.gitignore
文件没有与文件夹(目录)名称或其中任何文件匹配的文件夹或任何模式

其中一个子文件夹(来自根文件夹)的文件夹树为:

根目录(主项目)是
\u 04\u Spry Script Tests

还有许多其他子文件夹。这有帮助吗



编辑:@BrianCampbell,当然,我刚才给出的示例在新初始化的Git文件夹中测试时不会引起任何问题,您让我将示例目录复制到其中进行演示!*啊!*我不确定哪个子文件夹或文件会出现问题。有很多。对不起。

这里面有什么问题吗旧版?Git实际上并不跟踪文件夹本身;它只跟踪文件,文件夹实际上只作为文件名的一部分进行跟踪。如果文件夹为空,则无需添加任何内容。如果要确保在签出时创建隐藏文件,可以将其添加到文件夹中

或者,您的顶级目录中是否有
.gitignore
文件,或者该目录下的任何子目录中是否有与该目录名或其中所有文件名匹配的模式?如果是,您应该从
.gitignore
中删除该模式,或者使用
git add-f
强制添加它,ignor正在初始化
.gitignore

如果这两个建议都没有帮助,您能否尝试剥离目录树,使其尽可能多地重现问题(只保留一个目录,或者尽可能少地保留问题),并在您的问题中显示整个目录结构?这将有助于缩小问题的范围。如果有,
tree
将显示完整目录结构的良好列表;如果没有,
ls-lR

编辑:还有一些需要检查的内容。首先,我对您的目录结构有点困惑。
\u 04\u Spry Script Tests
目录是根目录吗(它是否包含
.git
目录)?或者这是一个级别?在您的许多示例中,您运行的是
git add\u 04\u Spry Script Tests
,但如果这是根目录,则需要从其中运行
git add

需要检查的一件事是,您是否有嵌套的Git存储库,这可能会导致问题。是否有多个级别的
.Git
目录?例如,如果在
\u 04\u Spry Script Tests
目录外有一个目录,并且在目录内有一个目录,并且您正试图将
\u 04\u Spry Script Tests
目录添加到外部re目录如果是积极的,你会遇到问题

另一个问题是,当您运行
gitadd
时会发生什么?您是否会收到任何错误,或者根本没有输出?
gitadd-v
是否提供了更多信息

如果运行
git status
,您是否看到有关这些目录的任何信息

如果这些都不起作用,请尝试显示以下命令的输出。如果这些命令生成大量输出,则可以将其精简为仅包含出现问题的目录的行:

git status -s
git ls-files -cs
git ls-files -io --exclude-standard
git ls-files -d

该文件夹中有任何内容吗?Git实际上并不跟踪文件夹本身;它只跟踪文件,文件夹实际上只作为文件名的一部分进行跟踪。如果文件夹为空,则无需添加任何内容。如果要确保在签出时创建隐藏文件,可以将其添加到文件夹中

或者,您的顶级目录中是否有
.gitignore
文件,或者该目录下的任何子目录中是否有与该目录名或其中所有文件名匹配的模式?如果是,您应该从
.gitignore
中删除该模式,或者使用
git add-f
强制添加它,ignor正在初始化
.gitignore

如果这两个建议都没有帮助,您能否尝试剥离目录树,使其尽可能多地重现问题(只保留一个目录,或者尽可能少地保留问题),并在您的问题中显示整个目录结构?这将有助于缩小问题的范围。如果您有问题,
tree<
git status -s
git ls-files -cs
git ls-files -io --exclude-standard
git ls-files -d