新聞中心
隨著項(xiàng)目越來(lái)越大,原有SVN已經(jīng)很難支撐現(xiàn)有工程(集中式管理,服務(wù)器壓力大,分支主干切換麻煩)。所以,決定將SVN切換成Git(分布式開(kāi)發(fā),快照式數(shù)據(jù),速度快,主干分支切換方便),下面為大家分享一下Linux下SVN遷移至Git具體方法。

10年積累的網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有蓬溪免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1.物理環(huán)境
Git–server Centos5.8 192.168.1.245
Svn–server Centos5.8 192.168.1.108
2.建立SVN用戶到git用戶的映射文件
建立SVN用戶到git用戶的映射文件,文件格式如下:
cat /tmp/userinfo.txt
david=sfzhang
yanni=yanni
3.克隆一個(gè)git版本庫(kù)
通過(guò)git svn clone克隆一個(gè)git版本庫(kù),SVN里面包含trunk,branches和tags。
git svn clone svn://192.168.1.108:9999/yanzi/ --no-metadata --authors-file=userinfo.txt --trunk=trunkmobile --tags=tags --branches=branches --ignore-refs=refs/remotes/yanzi-.* yanzi
參數(shù)–no-metadata表示:阻止git導(dǎo)出SVN包含的一些無(wú)用信息 參數(shù)–authors-file表示:SVN賬號(hào)映射到git賬號(hào)文件,所有svn作者都要做映射 參數(shù)–trunkmobile表示:主開(kāi)發(fā)項(xiàng)目 參數(shù)–branches表示:分支項(xiàng)目,–ignore-refs表示不包含后面的分支項(xiàng)目 參數(shù)yanzi表示:git項(xiàng)目名稱
4.查看項(xiàng)目提交的歷史記錄
通過(guò)git log 查看項(xiàng)目提交的歷史記錄,包括作者,日照,和提交注釋信息等。
cd yanzi
git log
commit 3c4907782804096ea3fa3fb5419dcce610e56f1f
Author: david
Date: Fri May 10 10:27:50 2013 +0000
5.列出當(dāng)前所有的分支
cd yanzi
git branch -r
tags/mobile_1.0.0
tags/mobile_1.0.1
trunk
yanziios1.0.1-build-2223-branch-002
6.手動(dòng)將branches分支轉(zhuǎn)換為tags
git tag mobile_1.0.0 tags/mobile_1.0.0
git tag mobile_1.0.1 tags/mobile_1.0.1
7.將多余的branches刪除掉
git branch -r -d tags/mobile_1.0.0
Deleted remote branch tags/mobile_1.0.0 (was d50002b).
git branch -r -d tags/mobile_1.0.1
Deleted remote branch tags/mobile_1.0.1 (was e7b78a2).
8.再次列出當(dāng)前的所有分支
git branch -r
trunk
yanziios1.0.1-build-2223-branch-002
9.建立git倉(cāng)庫(kù)并初始化版本庫(kù)
mkdir -p /data/gitdata/yanziios.git
cd /data/gitdata/yanziios.git/
git init --bare
Initialized empty Git repository in /data/gitdata/yanziios.git/
10.將yanziios.git的屬主修改為git用戶
chown git yanziios.git -R
ls -l yanziios.git/
total 64
drwxr-xr-x 2 git root 4096 May 22 12:25 branches
-rw-r--r-- 1 git root 66 May 22 12:25 config
-rw-r--r-- 1 git root 73 May 22 12:25 description
-rw-r--r-- 1 git root 23 May 22 12:25 HEAD
drwxr-xr-x 2 git root 4096 May 22 12:25 hooks
drwxr-xr-x 2 git root 4096 May 22 12:25 info
drwxr-xr-x 4 git root 4096 May 22 12:25 objects
drwxr-xr-x 4 git root 4096 May 22 12:25 refs
11.添加遠(yuǎn)程git服務(wù)器地址
git remote add origin git@192.168.1.245:/data/gitdata/yanziios.git
12.推送全部的分支和標(biāo)簽信息到git服務(wù)器上
git push origin master --tags
之后就是SVN遷移到Git測(cè)試,在客戶端用SourceTree工具克隆一個(gè)Git服務(wù)端倉(cāng)庫(kù)yanziios.git,在SourceTree圖形界面里面可以看到git用戶提交的Graph信息,描述信息(Description),日期,作者和版本號(hào)等信息。
網(wǎng)站標(biāo)題:Linux下SVN遷移至Git具體方法
URL分享:http://www.dlmjj.cn/article/dhsscdo.html


咨詢
建站咨詢
