4

我正在使用 Git 创建备份系统。

我刚刚创建了目录并在上面初始化了 git。

git init

当我尝试将未跟踪的文件添加到舞台时

git add -u *.pdf

我收到此响应错误:

sh.exe": /bin/git: 错误的文件号

作为附加信息,我有一个约 4500 个未跟踪文件的列表,如果我尝试逐个添加文件,我不会收到任何错误响应并且文件被发送到舞台。

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

4

1 回答 1

6

您不想要“-u”,因为它只会添加您已经在跟踪的文件。之后,git init您还没有跟踪任何内容。从文档中:

-u, --update:只匹配索引中已经跟踪的文件而不是工作树。这意味着它永远不会暂存新文件,但它将暂存已修改的跟踪文件的新内容,并且如果工作树中的相应文件已被删除,它将从索引中删除文件。

请改用-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

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

于 2013-03-24T02:31:56.733 回答