2013-03-24 203 views
4

我正在使用Git创建备份系统。GIT - git-add错误(错误文件号)

我刚刚创建了目录并初始化了它。

git init 

当我试图未跟踪文件与

git add -u *.pdf 

我得到这个响应错误添加到舞台:

sh.exe": /bin/git: Bad file number

至于更多的信息,我有一个列表〜4500未跟踪的文件,如果我尝试逐个添加文件,我不会收到任何错误响应,并将文件发送到舞台。

有谁知道如何解决这个问题,为什么会发生?我需要添加所有这些未跟踪的文件,但我不想以“猴子工作”的方式做到这一点,逐个添加。

+0

我其实犯了一个愚蠢的错误。我编写了git-add命令,而不用单引号括住通配符。就像@GoZoner说的,我误解了选项'-u'的含义。 – luisfsns 2013-03-24 03:06:44

回答

6

你不想'-u',因为它只会添加你已经跟踪的文件。在git init之后,你还没有追踪任何东西。从文档:

-u, --update: Only match against already tracked files in the index rather than the working tree. That means that it will never stage new files, but that it will stage modified new contents of tracked files and that it will remove files from the index if the corresponding files in the working tree have been removed.

使用-A(或--all)来代替。

对于您的特定问题,当您编写'* .pdf'时,shell会将其扩展为4500个文件。大量文件可能会溢出shell命令行输入缓冲区;这导致错误。你可以做几件事情:

git add -A    # adds everything at once 

for file in *.pdf; do git add -A $file; done # add files one by one 

这两项建议将避免在命令行中的问题;第一个是首选。

+0

请添加选中标记并加入! – GoZoner 2013-03-24 02:39:45

+1

我其实犯了一个愚蠢的错误。我编写了git-add命令,而不用单引号括住通配符。问题不是溢出¬¬。 但你的解释是非常有帮助的! 我是Git的新手。对不起,浪费你的时间。今天我刚刚开始阅读并了解它(http://git-scm.com/book/en/) 非常感谢巴西! – luisfsns 2013-03-24 02:53:24

+1

我不能添加加票,我没有足够的声望。我需要至少15分。但是当我得到他们,我回到这里给你投票。 谢谢 – luisfsns 2013-03-24 02:55:14