Git克隆时忽略.gitignore文件。

3
我的问题是,当我在终端上尝试执行以下命令时:git clone https://github.com/DheltaHalo/test.git。它也会克隆应该被 .gitignore 忽略的文件。
我已经知道了,如果我在我的 .gitignore 文件中写入 *.txt ,它应该忽略所有的 .txt 文件,但是当我将其克隆到我的桌面时,它也下载了这些文件。
3个回答

1
"

.gitignore 只有在添加(暂存)还未暂存的文件时才会考虑(除非使用 git add -f)。

克隆过程会忽略 .gitignore 文件。

如果一个文件已经被添加、提交,并且创建了另一个带有 .gitignore 的提交,则该文件仍将是仓库的一部分,因此会被克隆。

"

3
即使这是夸张的说法:在 .gitignore 文件中的条目只有在某些文件未被跟踪时才会被考虑。已提交的文件因为正在被检出,所以自动变成了被跟踪的。 - torek
这不是他要问的。标题说.gitignore被跟踪,但在他克隆存储库时没有下载。我这里也有同样的问题。 - Pebermynte Lars
如果已经提交,那么在克隆时它将被下载 - 如果不想这样,可以创建一个提交来删除这些文件。 - dan1st

1

.gitignore 的作用只是忽略尚未被跟踪的文件。如果您的文件已经在仓库中,那么它已经成为历史的一部分,在这个阶段忽略它们是没有意义的,否则您的版本回退将是不完整的。

请注意,如果您将一些已经被跟踪的文件添加到 .gitignore 并对它们进行更改,则也不会起作用。Git 不会关心新文件,但它仍然会跟踪已经记录的文件。如果这是您要做的事情,您需要执行一个“删除”(文件删除),它只适用于索引,而不会影响工作目录。可以使用以下命令来完成:git rm --cached [file]


0

.gitignore适用于新的文件,但如果您在.gitignore文件中添加了一些行时已经跟踪了的文件,git仍将跟踪这些文件:
当这些文件被修改时,您将看到它们被列出,它们将被推送、拉取,并且当您克隆您的存储库时,它们仍将出现。

如果您想让git“忘记”这些文件,您需要运行一些额外的步骤:例如,请参见

如何使Git“忘记”已跟踪但现在在.gitignore中的文件?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接