16

我已经使用 Git 导入了 SVN 存储库:

git svn clone --preserve-empty-dirs --stdlayout svn+ssh://... SVN.git

它最终确实成功了,尽管在途中它确实失败了几次,我不得不“重新开始”

git svn fetch

然而,似乎最终一切都很好。(尽管现在在写作时我开始怀疑我是否应该--preserve-empty-dirs在附加的fetches 中也提供?编辑: 不,我不应该。请参阅下面的评论。

然后我想创造.gitignore,所以我做了

git svn create-ignore

这也成功了。

但最终的结果并不令人满意。它确实.gitignore在许多文件夹中生成了大量文件。似乎每次 SVN 有一个svn:ignore属性时,Git 都会创建相应的.gitignore文件。

虽然我想让它们合并到一个根.gitignore文件中。这对于 git 来说是可能的,因为它的忽略更加灵活,允许在带有通配符(或没有通配符)的子目录中忽略。我认为任何方式都可以自动将这些“子.gitignore”转换为根处的单个子。

我想拥有它,因为“SVN 人”不会对我提交超过 20 个.gitignore文件感到满意......

4

1 回答 1

29

我找到了解决方案。您必须使用show-ignore而不是create-ignore将输出保存到文件中。

所以在克隆存储库后执行以下命令:

git svn show-ignore > .gitignore

从您拥有该目录的存储库根.git目录。

于 2012-12-05T05:55:17.417 回答