我对 Git 不熟悉,但有一个 Subversion 存储库需要不时地导入到 Git 存储库中(用于部署)。因此,我希望使用 SVN 进行大部分更新,但想知道将其推送到 Git 的最佳方法是什么(只需使用默认/主分支)。
我知道你只想导入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 ]
$ 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
为什么不直接在你的工作站上使用git?这是最直接的方式。
git svn clone
将获取你的SVN存储库并将修订版本导入到新的git存储库中。git remote add
将为你添加它。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
恭喜加入我们的Git!这里有一份非常棒的备忘单,适用于(曾经使用)SVN的用户。