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

Why is .gitignore not ignoring my files?

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

.gitignore 仅忽略不属于存储库的文件。如果您已经 git add 编辑了一些文件,它们的更改仍将被跟踪。 要从您的存储库(但不是从您的文件系统)中删除这些文件,请对它们使用 git rm --cached

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

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

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

只需将 folders/files 添加到 .gitignore 文件中并不会取消对它们的跟踪——它们将继续被 Git 跟踪。

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

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

git rm -r --cached .
git add .

然后提交您的更改:

git commit -m "Untrack files in .gitignore"

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

最佳做法 是创建一个 .gitignore 文件并在其中填充 folders/files 您在启动项目时不希望被跟踪的内容。但是,通常有必要在意识到不需要的文件被跟踪和存储后添加到 .gitignore 文件。

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

Make sure your .gitignore file uses ANSI or UTF-8 encoding. If it uses something else like Unicode BOM, it's possible that Git can't read the file. – ADTC Dec 14 '17 at 12:39

你可以用这个,

git rm -r --cached ./node_modules

如果你想忽略node_modules,例如

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

rm -f .git/index.lock

然后添加.git忽略

git add .gitignore

最好在开始时创建.git忽略文件并提及我们要忽略的文件。 如果你想忽略一些文件然后执行 git rm -r --cached

我遇到了同样的问题,然后我意识到我没有正确创建 .gitignore 文件。

在我的例子中,出于某种原因,我创建了一个 .gitignore.txt 文件。 Git 即使在您删除“.txt”后,仍会跟踪 .gitignore 文件中的文件。扩展并保存。

尝试在终端中通过 'touch .gitignore' 删除您的旧文件并创建一个新的 .gitignore 文件,这为我解决了。

按照这些步骤操作 gitignore

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

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

  3. 运行 git add . 命令

  4. git commit -m "Commit message"

如果您使用的是 VS Code:

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

这对我有用!

对于我项目中的一些文件,我需要使用 git filter-branch,这在 this answare 中有更好的解释。

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

如果 your.gitignore 文件没有忽略您的文件和目录。

.gitignore 仅忽略尚未添加到存储库的文件。如果您已经 git 添加了某些文件,将跟踪它们的修改。在这些文件上使用 git rm -r --cached 将它们从您的存储库中删除(但不是从您的文件系统中删除)。

git rm -r --cached .        #untrack files
git add .                   #re-adding the files
git commit -m "issue fixed" #commiting changes
git push                    #pushing changes