代碼遷移過(guò)程
1.首先確保你在目標(biāo)服務(wù)器上已配置好ssh keys(當(dāng)然,如果你使用的是http協(xié)議,可以忽略這一步)
94367a2e8f9516731af3213dae35a41e.jpg
如何創(chuàng)建和配置ssh keys?
戳這:
7dc7e8bd9c176eb7ea08df740d7f1f16.jpg
2.從源服務(wù)器克隆裸版本庫(kù)到本機(jī)
git clone --bare git@gitlab.huayu.nd/xxxx/xxxx.git
此時(shí),會(huì)從服務(wù)端將版本庫(kù)克隆到本地當(dāng)前目錄,請(qǐng)確保當(dāng)前目錄為空
,否則,文件混在一起,你懂的.
3.進(jìn)入到本機(jī) xxxx.git目錄:
cd xxxx.git
4.鏡像推送代碼到目標(biāo)服務(wù)器:
git push --mirror git@git.sdp.nd/xxxx/xxxx.git
經(jīng)過(guò)以上幾步,你的git倉(cāng)庫(kù)就完整遷移到新的目標(biāo)服務(wù)器上拉,包括所有commit,branch,tag. 一個(gè)不少:
55e24527e539e93a7d4fee67172e076c.jpg
WIKI遷移過(guò)程:
同上,只要把項(xiàng)目git地址后面加上".wiki"即可.如:
git@git.sdp.nd:edu-cloud-android/edu-people-forum.git
對(duì)應(yīng)wiki:
git@git.sdp.nd:edu-cloud-android/edu-people-forum.wiki.git
本地代碼指向:
方法一
直接重新clone一份.是個(gè)程序員都會(huì)了,不細(xì)說(shuō)了.方法二
將本地已有代碼庫(kù)做重定向:
假設(shè)當(dāng)前本地已有起源名稱(chēng)為"origin" --實(shí)際上默認(rèn)的名字都是這個(gè),你可以通過(guò)remote命令查看當(dāng)前git對(duì)應(yīng)的服務(wù)器信息,如下:
emp_2292_27.jpeg
- 備份已有起源"origin"為"origin_bak"
git remote rename origin origin_bak
- 添加新的起源"origin_new",指向
git@**git.sdp.nd/xxxx/xxxx.git
git remote add origin_new git@git.sdp.nd/xxxx/xxxx.git
- 拉取新建的起源對(duì)應(yīng)的服務(wù)器倉(cāng)庫(kù):
git fetch origin_new
假設(shè)你使用的是idea,那么在右下角的git分支切換菜單中此時(shí)你將看到有如下變化:
7e4e085258d04834f0f16766c920bb89.jpg
ddfeffb3cd37357555fa113be28ec5ec.jpg
- 接下去就按平時(shí)的操作去checkout就行了.
建議在檢出新的遠(yuǎn)程分支前先將當(dāng)前已有一些分支刪除,否則,你會(huì)看到一堆的分支...
附:
其它相關(guān)git命令參考:
- 檢出遠(yuǎn)程分支
git checkout -b *new_develop**origin_new/develop*
- 刪除本地分支
git branch -d *branch_name*
- 刪除本地倉(cāng)庫(kù)緩存的但遠(yuǎn)程早已刪除的分支
git fetch -p
- 刪除起源(請(qǐng)確保所有代碼都已推送push了,否則,你懂的)
git remote remove *origin_name*