2013-10-02 94 views
0

我已经加入到我的.gitignore文件:混帐忽略相同的文件中的所有目录

dwsync.xml 

然而,这并不能在其他目录忽略其他dwsync.xml文件,它只是忽略的根目录。我该如何解决这个问题?

+1

它应该忽略其他目录中的文件。你是什​​么意思,它不被忽视?你使用的是什么文件系统?什么OS? – FelipeC

+0

我在Windows上使用SourceTree。当对其他文件夹中的“dwsync.xml”进行更改时,更改会显示在“未提交的更改”中。 –

+0

也许你在其他文件夹中的'dwsync.xml'文件使用不同的大小写,如'DWSYNC.XML'?我不确定git在这种情况下会如何表现。我已经看到在Windows上使用git有关文件名不区分大小写的问题。 – pbetkier

回答

0

如果您的子目录中有.gitignore文件,递归传播将无法在该目录上工作。您必须显式添加文件名/掩码或从子目录中删除.gitignore。

+3

这是错误的。在子目录中存在'.gitignore'并不会阻止来自存储库树中较高的'.gitignore'的模式被匹配。 –

+0

@CharlesBailey,是的,你是对的。似乎我错过了一些东西。 –

4

你说:

进行更改时在其他文件夹dwsync.xml做出的改变上来就“未提交的更改”。

这表示dwsync.xml文件实际上是您的存储库的一部分。在这种情况下,.gitignore不起作用。 .gitignore中仅提及的文件适用于存储库中的而不是的文件,并且您不希望显示为“未跟踪文件”。

+2

确实。如果您添加将'.gitignore'忽略已在源代码管理下的任何文件不会影响这些文件,则可以使您的答案更易于理解。 'git rm --cached filename'应该可以解决这个问题。 – Dan