在我的项目的根目录中,我有一个foo
文件夹。在foo
文件夹中,我有一个bar
文件夹。我想忽略对bar
文件夹中所有文件的所有更改。我在gitignore
:
/foo/bar
检查文件夹:它存在且包含要忽略的文件。 gitignore
commit
是bar
。但是,我有一个文件,我可以在我的git status
文件夹中进行设置。当我输入
git bash
在我commit
内我看到应该被忽略的文件。可能是什么原因以及如何成功忽略条形文件夹中的所有文件?
请注意,以前使用相同的行忽略了这些文件,但我必须暂时将该行删除到服务器上的commit
内容。在gitignore
之后,我将该行放回git status
。这是不久之前,但现在我发现文件将在git status
。我希望能够修改被忽略的文件,而不会出现在{{1}}。
答案 0 :(得分:199)
我猜这个文件夹之前已经检查过git了吗?
运行git rm -r --cached <folder>
并再次检查。
答案 1 :(得分:14)
对我来说,接受的答案是解决方案的一部分,而不是整个解决方案。也许,我即将发布的其他步骤显而易见,但我先错过了它们。这是我采取的步骤,以确保我的.gitignore
文件忽略了我希望它忽略的文件夹:
git rm -r --cached .
(从git索引中删除所有内容以刷新git存储库)git add .
(将所有内容添加回仓库)git commit -m ".gitignore Fixed"
您可以找到我找到解决方案here的文章的链接。
答案 2 :(得分:3)
我遇到了这个问题,我意识到git实际上实际上忽略了文件/文件夹,但是我的代码编辑器(Visual Studio Code)只是个错误,而没有在UI边栏中正确地“灰化”。我重新启动了VSCode,它们按预期显示为灰色。
答案 3 :(得分:1)
git rm -r --cached /foo/bar/
git status
当我这样做时,终端会在该目录中显示一堆rm
。因此,为了防止可能不必要地影响远程的另一次提交,我做了:
git reset HEAD *
git status
此后,它什么也没提交,当我在/foo/bar/
内修改文件并执行git status
时,我仍然得到nothing to commit
。
答案 4 :(得分:1)
我已经完成了 echo node_modules >> .gitignore
,但没有奏效。
Windows 终端将文件保存在 UCS-2 LE BOM
中,而 git 似乎不接受这一点。
我用 Notepad
打开文件并用 UTF-8
编码保存
现在可以使用了。
我认为他们需要解决这个问题,因为 echo "filetoignore" >> .gitignore
实际上看起来很方便
答案 5 :(得分:0)
我使用 echo "build" > .gitignore
在 powershell 中创建了 .gitignore。这创建了一个带有 UTF-16LE 编码的文件。 Git 无法识别该文件的内容并继续将 build
文件夹显示为未跟踪。我删除了该文件并在 geany 文本编辑器 (UTF-8) 中重新创建它,现在 git 忽略 build
文件夹。简短的搜索再次强调该 git 不喜欢 UTF-16。