是否可以将.gitignore文件保留在SVN之外?

时间:2012-01-24 18:27:42

标签: git svn git-svn

我正在使用git svn将我的本地git存储库中的更改合并到SVN服务器。但是,当我发出git svn dcommit时,它实际上会提交我的源代码树中的任何.gitignore文件。这甚至在我在本地检出SVN存储库(使用SVN)之后,设置svn:ignore属性(递归地,将.gitignore列为要忽略的文件之一),然后将该属性更改直接提交给SVN。 / p>

这是预期的行为吗?一个bug?有没有人知道要将.gitignore保留在SVN之外?

我只知道我的团队中的一个非git用户将会看到这些文件并开始删除它们,然后下次我去rebase/dcommit时,许多不需要的文件将在SVN中结束。

1 个答案:

答案 0 :(得分:9)

您可以使用Git的特定于repo的“排除”文件,而不是使用.gitignore文件。 “exclude”文件驻留在$GIT_DIR/info/exclude(其中$GIT_DIR是Git存储库目录,通常为.git)。此文件的格式与.gitignore文件的格式完全相同。不同之处在于这是特定于存储库的文件 - 它只存在于您的存储库中。它不会传播到任何其他存储库(例如,通过git clonegit svn dcommit)。

无法从SVN仓库中省略.gitignore个文件,但请将它们保存在Git中。任何尝试这样做都会导致您的本地提交与git-svn从SVN服务器检索的提交不匹配。换句话说,您的本地存储库的历史记录将无法与SVN的历史记录进行协调;它们永远不会同步。