将svn分支导入git

将svn分支导入git,svn,git,Svn,Git,我是git新手,有一个subversion存储库,我希望能够偶尔将其导入git存储库(用于部署)。因此,我想使用svn执行大多数更新,但想看看将其推送到git(只是默认/主分支)的最佳方式是什么。为什么不在工作站上也使用git呢?这将是最直接的 git svn clone将获取您的svn存储库并将修订导入新的git repo 如果您需要推送到远程git存储库进行部署,那么git remote add将为您添加它 如果需要回推到SVN存储库,则git SVN dcommit 简而言之: mkdi

我是git新手,有一个subversion存储库,我希望能够偶尔将其导入git存储库(用于部署)。因此,我想使用svn执行大多数更新,但想看看将其推送到git(只是默认/主分支)的最佳方式是什么。

为什么不在工作站上也使用git呢?这将是最直接的

  • git svn clone
    将获取您的svn存储库并将修订导入新的git repo
  • 如果您需要推送到远程git存储库进行部署,那么
    git remote add
    将为您添加它
  • 如果需要回推到SVN存储库,则
    git SVN dcommit
简而言之:

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

恭喜你加入我们gits!对于(ex)svn用户来说是一个很好的备忘单。

我知道您只想导入svn存储库的主/主干分支,但我想提及以便将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本地分支和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
最后,它确保主机的主机头与svn回购的当前主干相同