將SVN倉庫轉換為Git倉庫

2021-10-14 06:48:30 字數 1602 閱讀 3766

$ sudo apt install git-svn
$ git svn clone url --no-metadata -t trunk -b branches -t tags
git svn clone 命令會把整個subversion倉庫匯入到乙個本地的git倉庫中。-t trunk -b branches -t tags告訴git該subversion倉庫遵循了基本的分支和標籤命名法則。如果你的主幹(trunk,相當於git裡的master分支,代表開發的主線)、分支或者標籤以不同的方式命名,則應做出相應改變。由於該法則的常見性,可以使用-s來代替整條命令,它意味著標準布局(s是standard layout的首字母),也就是前面選項的內容。下面的命令有相同的效果:

$ git svn clone url -s
注意本例中通過 git svn 匯入的遠端引用,subversion的標籤是當作遠端分支新增的,而不是真正的git標籤。匯入的subversion倉庫彷彿是有乙個帶有不同分支的tags遠端伺服器。用「$ git show-ref」就可以看到轉換後git倉庫的相關情況,結果類似如下:

$ git show-ref                                    

98c56d9a75b984568f9287ce5d70353bfe0db95a refs/heads/master

8aa63518f7d2f271b2cb445041d65d809393b981 refs/remotes/origin/cmake

d2d9287cc9a1689cbd760a906225738b0200f257 refs/remotes/origin/tags/release-v1.4.10

98c56d9a75b984568f9287ce5d70353bfe0db95a refs/remotes/origin/trunk

而普通的 git 倉庫是類似如下模樣:

$ git show-ref

e112dbfb3648dcd18110293a625cbee916f42e2d refs/heads/master

e112dbfb3648dcd18110293a625cbee916f42e2d refs/remotes/origin/dev

7b17708dbc4428a2d0e5d4665a859cdfd2093e26 refs/tags/2.1.0

$ cp -rf .git/refs/remotes/origin/tags/* .git/refs/tags/

$ rm -rf .git/refs/remotes/origin/tags

$ cp -rf .git/refs/remotes/origin/* .git/refs/heads/

$ rm -rf .git/refs/remotes/origin

$ git remote add origin ssh:

$ git push -u origin --all

$ git push origin --tags

svn倉庫轉換到git

安裝完成後開啟git bash 2.新建乙個目錄用於存放svn倉庫中的資料,可手動新建,也可以在cmd中使用命令列建立目錄,mkdir e devcloud svn 3.進入建好的存放svn的目錄下 3.將svn轉換成git 我這裡svn下有多個專案,所以就寫到了詳細的專案位址,且只轉換這個,並且沒...

svn倉庫遷移到git倉庫

1.安裝git,安裝svn命令列工具 安裝svn時勾選選項 並安裝git bash,開啟git bash 2.svn log q awk f r sort u users.txt 這個時候,應該在我們的svn目錄內生成了乙個users.txt檔案,內容大致是這樣子的 注意一定要收集到所有提交者,如果...

svn倉庫分模組遷移到git倉庫

git專案跟蹤到子模組倉庫 參考鏈結 公司要求將現有svn伺服器上的專案全部遷徙到gitlab伺服器上由運維部門統一管理。剛開始也是網上找資料,網上關於這方面文章非常多,找了幾篇比較寫的詳細文章按照步驟一步一步做,最後都沒有成功,主要原因網上文章都是很早之前寫的,有些命令在新版git上面執行出錯,另...