为什么 .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 时,请注意可能包含 .env
或 client_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
在 .gitignore 文件中进行更改。
运行 git rm -r --cached .
命令。
运行 git add .
命令
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
见下图。我的 .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 时,请注意可能包含 .env
或 client_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
在 .gitignore 文件中进行更改。
运行
git rm -r --cached .
命令。运行
git add .
命令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