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

问题描述 投票:0回答:14

见下图。我的 .gitignore 文件应该忽略 src/dist 中的所有文件,但事实并非如此。

git visual-studio-code gitignore
14个回答
901
投票

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


415
投票

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

仅将文件夹/文件添加到

.gitignore
文件不会取消对它们的跟踪 - 它们将继续由
Git
跟踪。

要取消跟踪文件,需要从存储库中删除

.gitignore
文件中列出的跟踪文件。然后重新添加它们并提交您的更改。

最简单、最彻底的方法是删除并缓存存储库中的所有文件,然后将它们全部添加回来。

.gitignore
文件中列出的所有文件夹/文件将不会被跟踪。从存储库的顶部文件夹运行以下命令:

git rm -r --cached .
git add .

然后提交您的更改:

git commit -m "Untrack files in .gitignore"

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

.env
client_secret.json
文件的提交历史记录。

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

.gitignore
文件。


47
投票

你可以用这个,

git rm -r --cached ./node_modules

例如,如果您想忽略node_modules


36
投票

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

要忽略它们,您首先需要删除它们,

git rm
它们,提交然后忽略它们。


31
投票

首先检查

.gitignore
编码。
确保编码 ID
utf-8

然后使用
git rm --cached filename
取消跟踪不需要的文件 现在你的问题已经解决了😁


9
投票

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

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


7
投票

如果您使用的是 VS Code

检查

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

这对我有用!


0
投票

最好在开始时创建 .gitignore 文件并提及我们想要忽略的文件。 如果你想忽略某些文件,请执行 git

rm -r --cached


0
投票

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

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

尝试删除旧文件并通过终端中的

'touch .gitignore'
创建一个新的 .gitignore 文件,这为我解决了这个问题。


0
投票

对于我项目中的一些文件,我需要使用

git filter-branch
,这在 this answare 中有更好的解释。


0
投票

如果以上所有解决方案都不起作用,请尝试此方法。

要忽略的目标文件不应位于暂存区域中。请仔细检查。


0
投票

用这个:

git update-index --assume-unchanged <filename>

For start tracking changes again run the following command:

git update-index --no-assume-unchanged <filename>

0
投票

您可以使用这些命令:

git rm -r --cached .
git add .
git commit -m "fixed untracked files" 

-1
投票

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

rm -f .git/index.lock

然后添加.gitignore

git add .gitignore
© www.soinside.com 2019 - 2024. All rights reserved.