Git(版本1.7.11-preview20120620) - 无法在主项目文件夹下添加所有子文件夹

时间:2012-11-08 03:38:15

标签: git add

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

我在Windows 7 Ultimate 64位上安装了上面引用的Git for Windows版本。

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

当我运行“git status”时,我收到了预期的“未跟踪文件”消息,因此我输入“git add。”。

所有文件都会添加到我的项目中以进行跟踪,但是没有子文件夹。手动添加每个子文件夹后(呃!)我用一个特定的子文件夹打了一个墙,无论我尝试什么,都不会添加。文件夹名称中包含空格,但我已成功添加了其他子文件夹。但是,我无法得到这个。文件夹的名称是“_04_Spry Script Tests”。

在Google上进行了大量搜索后,我尝试了很多方法。这是我记得要做的所有事情的清单。可能有其他人,但(我的坏)我没有记录我尝试过的每一个实例。对不起。

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文件没有与文件夹(目录)名称或其中任何文件匹配的文件夹或任何模式。

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

_04_Spry Script Tests\Programs & Services
_04_Spry Script Tests\Programs & Services\SCfK
_04_Spry Script Tests\Programs & Services\SCfK\Swim Academy
_04_Spry Script Tests\Programs & Services\SCfK\Swim Academy\_images
_04_Spry Script Tests\Programs & Services\SCfK\Swim Academy\SCFK_Swim_Lessons_Program.jpg
_04_Spry Script Tests\Programs & Services\SCfK\Swim Academy\Swim Schedules
_04_Spry Script Tests\Programs & Services\SCfK\Swim Academy\Swim Schedules\Spring 2010
_04_Spry Script Tests\Programs & Services\SCfK\Swim Academy\Swim Schedules\Spring 2010\Swim Schedules
_04_Spry Script Tests\Programs & Services\SCfK\Swim Academy\Swim Schedules\Spring 2010\Swim Schedules\Swim (Schedule) Spring 2010.pdf
_04_Spry Script Tests\Programs & Services\SCfK\Swim Academy\_images\mock-up.jpg
_04_Spry Script Tests\Programs & Services\SCfK\Swim Academy\_images\SCFK_Swim_Lessons_Program.jpg

根(主项目)目录是_04_Spry Script Tests

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


编辑: @BrianCampbell,当我刚刚给出的示例中,当我在新初始化的Git文件夹中测试它时,我要求我将示例目录复制到插图! *呃!*我不确定哪个子文件夹或文件会成为问题。有很多。遗憾。

1 个答案:

答案 0 :(得分:1)

该文件夹中有什么内容吗? Git实际上并不跟踪文件夹本身;它只跟踪文件,文件夹实际上只被跟踪为文件名的一个组成部分。如果文件夹为空,则无需添加任何内容。如果要确保在结帐时创建隐藏文件,可以将隐藏文件添加到文件夹中。

或者,您的顶级目录中是否有.gitignore文件,或者该目录级别的子目录是什么?它是否具有与该目录名称匹配的模式,或其中所有文件的名称?如果是这样,您应该从.gitignore删除此类模式,或使用git add -f强制添加该模式,而忽略您的.gitignore

如果这些建议都没有帮助,您是否可以尝试将目录树删除到尽可能多地重现问题(只是一个目录,或尽可能少地仍然得到问题),然后显示您问题中的整个目录结构?这将有助于缩小问题的范围。如果你有,tree显示完整目录结构的一个很好的列表;如果没有,ls -lR会这样做。

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

要检查的一件事是,您是否嵌套了Git存储库,这可能会导致问题。是否有一个.git目录在多个级别?例如,如果_04_Spry Script Tests目录之外有一个,并且其中有一个,并且您尝试将_04_Spry Script Tests目录添加到外部存储库,则会遇到问题。

另一个问题是当您运行git add时会发生什么?你有任何错误,或者没有输出? git add -v是否会向您提供更多信息?

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

如果这些都不起作用,请尝试显示以下命令的输出。如果它们产生大量输出,可以将其修剪为包含有问题的目录的行:

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