將現有git項目提交到svn庫

原項目使用git管理. 由於各類緣由須要提交到svn庫.參考資料git

  1. 建立svn庫
svn co http://svn.example.com/foo
cd myproj
svn mkdir trunk
svn commit -m'Created trunk directory'

或者直接在現有的repository上建立目錄shell

svn mkdir --parents http://url/dir_name --message "messages"
  1. 設置svn遠程庫

2.1 clone git項目svn

git clone ~git/repositories/foo/mainline.git ~git/repositories/svn-mirror/foo  
cd ~git/repositories/svn-mirror/foo

2.2 在.git/config中添加svn-remotefetch

[svn-remote "svn"]
        url = http://svn.example.com/foo/trunk  
        fetch = :refs/remotes/git-svn
  1. 提交項目到svn庫

3.1 從空的svn遠程庫中作初始化fetch,並將其做爲一個新分支checkouturl

git svn fetch svn  
git checkout -b svn git-svn

3.2 將master分支merge進svn分支並提交到svn庫
merge時發生 fatal: refusing to merge unrelated histories 錯誤, 可加 --allow-unrelated-historiescode

git merge master
git svn dcommit
  1. rebase到svn分支以便從master版本推送到svn庫
git checkout master
git rebase svn
git branch -d svn
相關文章
相關標籤/搜索