在我的项目的根目录中,我有一个
foo
文件夹。在 foo
文件夹内,我有一个 bar
文件夹。我想忽略对 bar
文件夹中所有文件的所有更改。我的gitignore
里有这个:
/foo/bar
检查文件夹:它存在并且包含要忽略的文件。
gitignore
是 commit
ted。但是,我有一个文件可以进行修改,并且位于我的 bar
文件夹中。当我打字时
git status
在我的
git bash
中我看到了应该被忽略的文件。可能是什么原因以及如何成功忽略 bar 文件夹中的所有文件?
请注意,之前使用同一行忽略这些文件,但我必须暂时将该行删除到服务器上的某些内容。在
commit
之后,我将线放回commit
。这是不久前的事了,但现在我发现这些文件将位于 gitignore
中。我希望能够修改被忽略的文件,而不会让它们出现在git status
中。运行
git status
并再次检查。
nothing to commit
在 powershell 中创建了 .gitignore。这将创建一个使用 UTF-16LE 编码的文件。 Git 无法识别该文件的内容,并继续将
echo "build" > .gitignore
文件夹显示为未跟踪。我删除了该文件并在 geany 文本编辑器 (UTF-8) 中重新创建了它,并且 git 现在忽略了 build
文件夹。简短的搜索再次表明 git 不喜欢 UTF-16。编辑:
证明:
创建一个名为 test-gitignore 的文件夹
build
git init
.gitignore
。但创建 .gitignore 文件的方式很重要。如果您使用 powershell 的 echo: "echo >> .gitignore" 创建它,您的 .env 将不会被忽略,因为 git 需要 utf-8 编码的 .gitignore 文件。
.env
In PowerShell, the default encoding used by the echo command for writing text to a file is Unicode (UTF-16LE). This means that when you use the echo command to append text to a file using >>, the text will be written in UTF-16LE encoding.
(其中 .git 在此文件夹中 ^)
并且您只将 mediafiles/article_images/ 添加到您的 .gitignore 文件中,这不会忽略 mediafiles/article_images 部分相对路径。
您必须在 .gitignore 中添加完整的相对路径才能正确忽略它:
myproject/mediafiles/article_images