公司代码日常开发由于SVN过于缓慢,已经迁移到内部gitlib服务器上,并使用git管理。但由于研发管理仍采用SVN,导致开发完成提测和发布仍需要将代码上传SVN。由此需要将本地已有GIT仓库上传到SVN服务器。
创建SVN仓库
1 2 3 4
| svn co http://svn.example.com/foo cd myproj svn mkdir trunk svn commit -m'Created trunk directory'
|
或者直接在现有仓库创建目录
1
| svn mkdir --parents http://url/dir_name --message "messages"
|
手动指定SVN仓库
在本地git仓库配置文件中添加以下内容:
1 2 3 4 5
| vim .git/config
[svn-remote "svn"] url = http://svn.example.com/foo/trunk fetch = :refs/remotes/git-svn
|
可以使用git配置检查指令来验证手动修改的配置:
1 2 3
| git config --local -l svn-remote.svn.url=svn://guan.isum.cn/smart/shells svn-remote.svn.fetch=:refs/remotes/git-svn
|
此配置作用为关联了SVN仓库和本地git仓库
提交本地git仓库到SVN
拉取远程SVN仓库,并checkout到本地git仓库的git-svn分支上
1 2
| git svn fetch svn git checkout -b svn git-svn
|
将master分支merge进svn分支并提交到svn库
1 2
| git merge master --allow-unrelated-histories git svn dcommit
|
rebase到svn分支以便从master版本推送到svn库
1 2 3
| git checkout master git rebase svn git branch -d svn
|