我在 google code 上有一个公开托管的 svn 存储库,但是由于各种原因,我在本地切换到了 git。我目前是唯一可以访问 googlecode 存储库的开发人员,因此无需进行提取。所有提交都通过 dev 分支到 master 分支到 svn,使用 git svn dcommit
。一切安好。现在我的情况是我在本地有一些文件在 git 的版本控制中,但我不希望它们公开可用。
所以我有了一个想法:我创建一个私有(private)目录并添加一个 svn:ignore "private/*"属性到我的 svn 存储库。但比之后
git svn dcommmit
我收到错误:提交期间 merge 冲突:文件或目录“.”已过期;尝试更新:资源过时;尝试在/usr/local/git/libexec/git-core/git-svn 第 574 行更新
我尝试将 svn:ignore 属性导入到 .git/info/exclude 中,但这从 git 中排除了我在“私有(private)”中的所有 git 文件,这绝对不是我想要的。
[2011-08-06]
我认为错误不是因为 svn:ignore,似乎 git svn 完全忽略了 svn:ignore,而是由于其他未知原因。问题变成了:是否有可能从 git svn dcommit
中排除路径,就像可以使用 --ignore-path< 从 git svn fetch
中排除路径一样/p>
最佳答案
git-svn 忽略 svn:ignore 但 SmartGit如果您使用 SmartGit checkout 您的存储库则不会。它将它转换为相应的 .gitignore 文件,反之亦然。 所以我建议你使用 SmartGit 而不是 git-svn。
关于git 知道但(远程)svn 忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6237782/