svn 遷移至git操作手冊
專案交付、版本管理工具變更等情況下,遷移svn舊歷史記錄有很大必要,方便後續追蹤檔案的提交歷史,檔案修改記錄比對等。git自帶了從svn遷移至git的工具命令,可很好的對svn上的提交歷史做遷移和對映,操作簡單方便。但是初次接觸不熟練,這裡做乙個總結和記錄,內容盡量簡單化。爭取提供給剛剛接觸git和準備遷移的使用者乙個簡單易懂的方案。
舊svn伺服器:192.168.1.185(對生產的敬畏)
新svn+git伺服器:192.168.1.203
我是把舊的svn通過dump下來傳到203的svn上面這需要點時間,這個原理跟mysql的dump一樣
把svn上的**倉庫遷移到gitlab上,實際上就是把svn倉庫轉變成git倉庫,並且希望能保留原svn倉庫的commit等歷史記錄,這一點很重要。
svn遷移到gitlab需要安裝git-svn
yum install -y git-svn建立users.txt(儲存svn賬號與gitlab上賬號的關聯性)
svn log svn://得到的結果:192.168.1.203 -q | awk -f '|' '/^r/ ' | sort -u > ./users.txt
然後開始把svn倉庫轉變成git倉庫,執行以下命令:
git svn clone svn://新增gitlab到git源資訊192.168.1.203/xinglvtmc/ --no-metadata --authors-file=users.txt --trunk=trunk --tags=tags --branches=branch xinglvtmc
git remote add origin url5. 將trunk, branches等上傳
git push origin --all為了將標籤變為合適的 git 標籤,執行
# cd my_project這會使原來在 remotes/origin/tags/ 裡的遠端分支引用變成真正的(輕量)標籤。# cp -rf .git/refs/remotes/origin/tags/*
.git/refs/tags/
# rm -rf .git/refs/remotes/origin/tags
接下來,將 refs/remotes 下剩餘的引用移動為本地分支:
# cp -rf .git/refs/remotes/*現在所有的舊分支都是真正的 git 分支,並且所有的舊標籤都是真正的 git 標籤。 最後一件要做的事情是,將你的新 git 伺服器新增為遠端倉庫並推送到上面。下面是乙個將你的伺服器新增為遠端倉庫的例子:.git/refs/heads/
# rm -rf .git/refs/remotes
fatal: 遠端 origin 已經存在。
此時只需要將遠端配置刪除,重新新增即可;
git remote rm origin
git remote add origin
再次提交檔案即可正常使用
粗心造成的小錯誤,順便說一下,如果git沒有commit就執行push操作會出現以下錯誤
fatal: unable to access '/': empty reply from server
解決:只需要先commit 在 push即可
如何把SVN遷移到Gitlab
把svn上的 倉庫遷移到gitlab上,實際上就是把svn倉庫轉變成git倉庫,並且希望能保留原svn倉庫的commit等歷史記錄,這一點很重要。svn遷移到gitlab需要安裝git svn yum install y git svn保留原svn倉庫的commit等歷史記錄,需要獲取到svn使用的...
SVN及日誌遷移到Gitlab
1 svn準備遷移到gitlab的工作 1.1 將svn提交記錄匯出,如下圖操作 svn log log.txt 匯出後將生成乙個提交記錄的log.txt的檔案,檔案格式如下所示 1.2 然後建立svn2git.txt檔案,作用是svn使用者名稱與git使用者名稱的乙個對映檔案。格式如下 示例 we...
svn遷移到git實踐
服務端用的是windows版gitblit,svn版本上的分支一律不保留 1 先登入gitblit管理頁面,建立倉庫 abc.com 2 在本地www目錄下用git bash執行 git svn clone no metadata abc 結束後www目錄下會多出乙個名為abc目錄,注意那個trun...