2013年3月8日 星期五

Git 轉換版本庫到 SVN

From Evernote:

Git 轉換版本庫到 SVN

Clipped from: http://www.worldhello.net/2010/01/08/74.html
在Git版本庫上建立SVN關聯
git svn init -s svn版本庫路徑

取得SVN版本庫第一筆log
git svn fetch

列出所有分支
git branch -r

建立新的分支,並切換過去
git checkout -b trunk remotes/trunk

列出目前有多少分支,顯示自已現在在那個分支
git branch

列出該分支所有log (在命令模式下查看第一比記錄)
git log master
[假設取得第一筆log Hash為123abcd]

只合併該筆記錄
git cherry-pick 123abcd

將trunk從123abcd這筆記錄合併到master
git rebase --onto trunk 123abcd master

列出目前有多少分支,顯示自已現在在那個分支
git branch

切換到trunk這個分支
git checkout trunk

取消master最後一次的commit
git reset --hard master

將所有的commit送到svn上
git svn dcommit

---------------------------------------我是分隔線--------------------------------------

經過上面的同步後,以後想要在把最新的資料提交回SVN,操作可參考如下。

trunk為SVN主線 (實際情況還是要看當下想使用那條線)
切換到trunk
git checkout trunk

將SVN上的最後版本與git合併到上最新版本
git merge -s subtree master

將trunk合併後的資料倒回SVN
git svn dcommit


沒有留言:

張貼留言