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

Ric*_*ard 48 git gitignore visual-studio-code

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

在此输入图像描述

Elm*_*ise 95

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

  • git rm --cached file_name.ext 对我来说可以很好地更新一个文件的 gitignore 。谢谢。 (44认同)
  • git rm -r --cached 文件夹递归删除文件夹上的缓存 (7认同)
  • 我这样做了,但 GitHub 仍然想跟踪并添加它们。 (5认同)
  • git rm -r --cached <FolderName> 有效。谢谢。 (3认同)

小智 31

首先检查.gitignore编码。
确保编码 id utf-8
然后使用git rm --cached filename 现在解决的问题来取消跟踪不需要的文件

  • 文件重新编码为我做到了。 (3认同)

Mar*_*ckK 26

.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认同)
  • 谢谢你的回答。这确实有帮助。不要忘记将 repo 推送到 git (2认同)
  • 这应该被标记为正确答案 (2认同)

小智 26

你可以用这个,

git rm -r --cached ./node_modules
Run Code Online (Sandbox Code Playgroud)

例如,如果您想忽略 node_modules


ßãl*_*ãjî 10

按照以下步骤操作 gitignore

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

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

  3. 运行git add 。命令

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


PKP*_*abu 7

如果您使用 VS 代码

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

这对我有用!

在此输入图像描述


Iga*_* S. 5

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

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


Phi*_*emy 5

看看这个:.gitignore 不起作用 特别是 ADTC 的评论:

确保您的 .gitignore 文件使用 ANSI 或 UTF-8 编码。如果它使用 Unicode BOM 之类的其他东西,则 Git 可能无法读取该文件。– ADTC 2017 年 12 月 14 日 12:39