如何更換git托管

有時候會遇到需要更換代碼托管平臺,從github,gitlab或者Bitbucket遷移到其它平臺,過程中可能遇到不少問題,本文從是否保留歷史提交記錄兩種需求出發(fā),介紹一下基于git托管平臺的遷移方法。

一、要求保留所有的提交記錄的遷移方法

1、從舊的托管倉庫中克隆一個裸版本庫。

git clone –bare git://github.com/yourname/src_project.git

--bare:克隆一個裸版本庫。

裸版本庫的名字一般用原來的倉庫名加上.git后綴,它不包含工作區(qū),直接就是版本庫的內容,包含的文件如下圖所示,和正常版本庫中.git文件夾的內容差不多。

2、到新的Git服務器上創(chuàng)建一個新項目,比如華為軟件開發(fā)云配置管理服務。

新倉庫地址:

git@codehub-cn-northeast-1.devcloud.hwclouds.com:f9c39cc7617a4caf9cb03d6bc8c3ac8a/dst_project.git

3、將本地裸版本以鏡像的方式推送到華為軟件開發(fā)云倉庫中。

git push –mirrorgit@codehub-cn-northeast-1.devcloud.hwclouds.com:f9c39cc7617a4caf9cb03d6bc8c3ac8a/dst_project.git

--mirror指定refs/下的所有文件鏡像的推送到遠程倉庫,而不是命名每個ref一一推送。本地更新的refs將被強制更新到遠端倉庫,本地刪除的refs也將強制從遠端倉庫刪除。

因為本地和遠端倉庫是兩個不同的origin,所以如果不選擇鏡像推送,會產生如下錯誤:

提示:華為軟件開發(fā)云默認對master分支開啟分支保護,因此推送之前要解除分支保護。

4、刪除本地裸版本倉庫,src_project.git文件夾。

5、從新的托管服務器上克隆一份代碼到本地。

git clonegit@codehub-cn-northeast-1.devcloud.hwclouds.com:f9c39cc7617a4caf9cb03d6bc8c3ac8a/dst_project.git

二、無需保留提交記錄的遷移方法

1、從舊的托管倉庫中下載一套代碼。僅僅是代碼,沒有git版本管理相關內容。

2、到新的Git服務器上創(chuàng)建一個新項目。

新倉庫地址:

git@codehub-cn-northeast-1.devcloud.hwclouds.com:f9c39cc7617a4caf9cb03d6bc8c3ac8a/dst_project.git

3、git init? #在本地代碼根目錄文件夾下初始化倉庫

4、git remote add origingit@codehub-cn-northeast-1.devcloud.hwclouds.com:f9c39cc7617a4caf9cb03d6bc8c3ac8a/dst_project.git

5、git pull origin master –rebase? #從新托管倉庫上拉去已存在的內容

6、git add .

7、git commit

8、git push --set-upstream origin master? #關聯上游托管倉庫并推送舊代碼

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容