为什么我的 .gitignore 文件在添加文件时不起作用?



我正在考虑切换到git(从perforce)。我正在将文件添加到我的存储库中,但是由于某种原因,我的.gitignore文件尚未使用。通过git status验证要添加的文件时,我可以看到应忽略的文件。我一定缺少一些非常基本的东西。

这是我正在测试的非常简化的目录结构:

d:/git/
    .git
    Test/
        test.suo
        bin/
            Debug/
                test.dll
    .gitignore

这是我的.gitignore文件的相关部分:

**/*.suo
**/[Bb]in/Debug

添加我调用的文件时:

git add Test

然后我验证已添加的文件:

git status

向我展示:

new file:   Test/bin/Debug/test.dll
new file:   Test/test.suo

我想念什么?为什么包含这些文件?

最初是使用PowerShell的echo $null >> .gitignore创建文件的问题。这是因为它不是创建一个完全空的文件(根本没有字节),而是一个带有UTF-16小型字节订单标记(" BOM")的文件。

在此答案的评论中指出,这与诸如git之类的工具效果不佳,git通常会期望无Bom-bom-bom-8编码。

使用PowerShell创建一个空的文件似乎实际上是非常骇人听闻的。

最新更新