将一个svn分支导入git

3

我对 Git 不熟悉,但有一个 Subversion 存储库需要不时地导入到 Git 存储库中(用于部署)。因此,我希望使用 SVN 进行大部分更新,但想知道将其推送到 Git 的最佳方法是什么(只需使用默认/主分支)。

3个回答

5

我知道你只想导入svn仓库的主/干线分支,但我想提一下svn2git工具,它可以将你的svn导入到一个git仓库中。

相较于git svn clone命令,它更好用,因为如果你在svn中有如下代码:

  trunk
    ...
  branches
    1.x
    2.x
  tags
    1.0.0
    1.0.1
    1.0.2
    1.1.0
    2.0.0

git-svn会遍历提交历史来构建一个新的git仓库。
将所有分支和标签作为远程svn分支导入,但你真正想要的是本地的git-native分支和git标签对象
因此,在导入这个项目后,你将获得:

  $ git branch
  * master
  $ git branch -a
  * master
    1.x
    2.x
    tags/1.0.0
    tags/1.0.1
    tags/1.0.2
    tags/1.1.0
    tags/2.0.0
    trunk
  $ git tag -l
  [ empty ]

完成svn2git后,您将得到以下结果:
  $ git branch
  * master
    1.x
    2.x
  $ git tag -l
    1.0.0
    1.0.1
    1.0.2
    1.1.0
    2.0.0

最后,它确保主分支的HEAD与svn存储库当前的trunk相同。

3

为什么不直接在你的工作站上使用git?这是最直接的方式。

  • git svn clone将获取你的SVN存储库并将修订版本导入到新的git存储库中。
  • 如果你需要将代码推送到远程git存储库以进行部署,那么git remote add将为你添加它。
  • 如果你需要将修改推送回SVN存储库,则使用git svn dcommit

1

简而言之:

mkdir my_blog_tmp
cd my_blog_tmp
git-svn init http://code.yoursite.net/my_blog/trunk/ --no-metadata
git config svn.authorsfile ~/Desktop/users.txt
git-svn fetch

恭喜加入我们的Git!这里有一份非常棒的备忘单,适用于(曾经使用)SVN的用户。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接