如何忽略从svn到git迁移的特定标记

如何忽略从svn到git迁移的特定标记,git,svn,git-svn,Git,Svn,Git Svn,我有标准的SVN布局。我正在Windows上进行从SVN到git的迁移 下面是我正在使用的命令 git svn clone --stdlayout <svn-repo-url> 我只是想得到branch_a和tag_a 请帮助,不要投反对票,因为我无法理解。git svn不是一次性转换存储库或存储库部件的正确工具。如果您想将Git用作现有SVN服务器的前端,那么它是一个很好的工具,但是对于一次性转换,您应该不要使用Git SVN,而是svn2git,它更适合此用例 有很多工具称为s

我有标准的SVN布局。我正在Windows上进行从SVN到git的迁移

下面是我正在使用的命令

git svn clone --stdlayout <svn-repo-url>
我只是想得到branch_a和tag_a
请帮助,不要投反对票,因为我无法理解。

git svn
不是一次性转换存储库或存储库部件的正确工具。如果您想将Git用作现有SVN服务器的前端,那么它是一个很好的工具,但是对于一次性转换,您应该不要使用
Git SVN
,而是
svn2git
,它更适合此用例

有很多工具称为
svn2git
,最好的工具可能是来自的KDE工具。我强烈建议使用
svn2git
工具。这是我所知道的最好的一款,它的规则文件非常灵活

如果您不是100%了解存储库的历史记录,
svneverever
from是在将SVN存储库迁移到Git时调查其历史记录的一个很好的工具

您可以使用其规则文件轻松地配置该工具,使其完全符合您的需要,包括忽略某些标记


尽管git svn更容易启动,但以下是使用KDE
svn2git
而不是
git svn
更优越的一些原因,除了它的灵活性之外:

  • 通过
    svn2git
    (如果使用了正确的历史记录),可以更好、更清晰地重建历史记录,对于具有分支和合并等更复杂的历史记录尤其如此
  • 这些标记是真实的标记,而不是Git中的分支
  • 使用
    git svn
    时,标记包含一个额外的空提交,这也使得它们不是分支的一部分,因此正常的
    fetch
    将不会获取它们,直到您将
    --tags
    交给命令,因为默认情况下,也只获取指向已获取分支的标记。使用正确的svn2git标记就可以找到它们所属的位置
  • 如果您更改了SVN中的布局,您可以使用
    svn2git
    轻松配置它,使用
    git SVN
    您最终将丢失历史记录
  • 使用
    svn2git
    还可以轻松地将一个SVN存储库拆分为多个Git存储库
  • 或者将同一SVN根目录中的多个SVN存储库轻松组合到一个Git存储库中
  • 使用正确的
    svn2git
    比使用
    git svn

有很多原因导致
git svn
更差,而KDE
svn2git
更优越。:-)

我是说,我不能忽视,仍然有人投反对票。若你们知道答案,请发表评论。你们并没有任何效果——忽略配置文件中的路径。也许你应该发布你已经尝试过但没有达到预期效果的命令。@Vampire从我的回答中找到一种使用
svn2git
的方法,否则你将很难从混乱中获得合理的历史记录。;-)我无法安装svn2git,原因/策略:(对您来说太糟糕了:-(
[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
[svn-remote "svn"]
    url = svn-url
    fetch = trunk:refs/remotes/origin/trunk
    branches = branches/{branch_a}:refs/remotes/origin/*
    tags = tags/{tag_a}:refs/remotes/origin/tags/*