烦恼一般都是想太多了。

0%

将当前的git版本库内容提交到svn

由于自己本地一直都使用的是 git ,很多凌乱的脚本准备归一下类,方便维护。所以就建立了一个 svn 版本库来存储。但我不想简单的只是把内容提交上去,还要保留我本地的 git 历史记录,所以要进行手动处理一下。
参考地址

手动指定 svn 库地址

在配置文件内添加:

vim .git/config

[svn-remote "svn"]
url = http://svn.example.com/foo/trunk
fetch = :refs/remotes/git-svn

我们可以用 git config --local -l 来验证一下我们的配置:

git config --local -l`
svn-remote.svn.url=svn://guan.isum.cn/smart/shells
svn-remote.svn.fetch=:refs/remotes/git-svn

这里,请不要被 “svn” 这个所误导,只是我们指定的一个远程版本仓库的名称而已,你可以叫任何其他的名字。

这个配置也就是指定了一个远程 svn 版本库的意思。

拉取远程分支

git svn fetch svn

将 svn 版本库获取之后,我们可以将内容检出到本地来。

git co -b svn git-svn

将原程分支 git-svn 给检出到本地了。

分支合并

这个时候,我们就可以用 merge 命令将我们本地 git 分支上的内容合并过来了。

git merge master --allow-unrelated-histories

推送到 svn 远程库:

git svn dcommit

回到主分支

git co master
git rebase svn
git branch -d svn