为什么.gitignore不会忽略我的文件?

时间:2017-07-30 13:35:05

标签: git visual-studio-code gitignore

见下图。我的.gitignore文件应该忽略src / dist中的所有文件,但不是。

enter image description here

9 个答案:

答案 0 :(得分:62)

.gitignore仅忽略不属于存储库的文件。如果您已git add编辑了某些文件,则仍会跟踪其更改。 要从存储库中删除这些文件(但不是从文件系统中删除),请在其上使用git rm --cached

答案 1 :(得分:10)

按照以下步骤操作 gitignore

  1. .gitignore 文件中进行更改。

  2. 运行 git rm -r --cached . 命令。

  3. 运行 git add . 命令

  4. git commit -m "提交消息"

答案 2 :(得分:5)

gitignore只会忽略未跟踪的文件。 您的文件被标记为已修改 - 意味着它们已被提交,过去和它们现在由git跟踪。

要忽略它们,首先需要删除它们,git rm它们,提交然后忽略它们。

答案 3 :(得分:5)

.gitignore文件可确保未被Git跟踪的文件保持未跟踪状态。

仅将文件夹/文件添加到.gitignore文件中并不会取消跟踪它们-它们仍将被Git跟踪。

要取消跟踪文件,必须从存储库中删除.gitignore文件中列出的跟踪文件。然后重新添加它们并提交您的更改。

最简单,最彻底的方法是删除并缓存存储库中的所有文件,然后将它们全部重新添加。 .gitignore文件中列出的所有文件夹/文件都不会被跟踪。在存储库的顶部文件夹中,运行以下命令:

git rm -r --cached . git add .

然后提交您的更改:

git commit -m "Untrack files in .gitignore"

请注意,以前所有带有不需要文件的提交都将保留在提交历史记录中。推送到GitHub时,请注意可能包含.envclient_secret.json文件的提交历史记录。

最佳实践是创建一个.gitignore文件,并使用在启动项目时不希望跟踪的文件夹/文件填充该文件。但是,通常有必要在意识到正在跟踪和存储不需要的文件之后将其添加到.gitignore文件中。

答案 4 :(得分:0)

看看这个:.gitignore is not working 特别是来自ADTC的评论:

  

确保您的.gitignore文件使用ANSI或UTF-8编码。如果使用   其他一些东西,例如Unicode BOM,Git可能无法读取   文件。 – ADTC '17 Dec 14在12:39

答案 5 :(得分:0)

您可以使用git rm -r --cached ./node_modules。假设您要忽略节点

答案 6 :(得分:0)

首先从git存储库中删除index.lock文件

rm -f .git/index.lock

,然后添加.gitignore

git add .gitignore

答案 7 :(得分:0)

最好在启动并提及我们要忽略的文件时创建.gitignore文件。 如果要忽略某些文件,请执行git rm -r --cached

答案 8 :(得分:0)

如果您使用的是 VS Code

检查 .gitignore 文件的编码类型。如果不是,请将其更改为 UTF-8。 选择 Reopen with Encoding 选项以更改文件编码。

这对我有用!

enter image description here