我正在使用git svn将我的本地git存储库中的更改合并到SVN服务器.但是,当我发出git svn dcommit它时,它实际上会提交我在源代码树中的任何.gitignore文件.这甚至在我在本地检出SVN存储库(使用SVN)后,设置svn:ignore属性(递归地,将.gitignore列为要忽略的文件之一),然后将该属性更改直接提交给SVN.
这是预期的行为吗?一个bug?有没有人知道要保留.gitignore的SVN?
我只知道我的团队中的一个非git用户将会看到这些文件并开始删除它们,然后下次我会看到rebase/dcommit很多不需要的文件将会出现在SVN中.
您可以使用Git的特定于repo的"排除"文件,而不是使用.gitignore文件."exclude"文件驻留在$GIT_DIR/info/exclude($GIT_DIR通常是Git存储库目录.git).此文件的格式与.gitignore文件的格式完全相同.不同之处在于这是特定于存储库的文件 - 它只存在于您的存储库中.它不会传播到任何其他存储库(例如,通过git clone或git svn dcommit).
无法.gitignore从SVN仓库中省略文件,但将它们保存在Git中.任何尝试这样做都会导致您的本地提交与git-svn从SVN服务器检索的提交不匹配.换句话说,您的本地存储库的历史记录将无法与SVN的历史记录进行协调; 他们将永远不同步.