Git遠程倉庫遷移

  咱們在使用Git對項目進行管理時,有時候會遇到倉庫遷移的需求,如從github遷移到本身搭建的私有Gitlab倉庫。遷移步驟以下:git

舉例:github

  源庫地址:git@github.xxx.com/groups:test.com.gitgitlab

  目標庫地址:gitlab@gitlab.xxx.com/newgroups:newtest.com.gitspa

一、克隆源版本庫

在Shell執行以下命令:code

git clone --bare git@github.xxx.com/groups:test.com.git
複製代碼

命令執行結果以下:cdn

Initialized empty Git repository in /home/test/test.com.git/
remote: Counting objects: 8569, done.
remote: Compressing objects: 100% (2606/2606), done.
remote: Total 8569 (delta 6374), reused 7917 (delta 5793)
Receiving objects: 100% (8569/8569), 83.36 MiB | 9.57 MiB/s, done.
Resolving deltas: 100% (6374/6374), done.
複製代碼

二、設置目標倉庫

  一、將目標倉庫master分支置爲空,刪除已經存在的文件(若是沒有master,需先生成master分支,如添加README.md文件便可)blog

  二、將master分支修改爲UnProtected狀態,也就是未保護狀態。這個須要Git帳號具備相應權限。修改位置項目->Settings->Repository->Protected Branchesrem

點擊Unprotect按鈕便可取消master分支保護

三、將源Git鏡像推送到目標庫地址

進入克隆好的xxx.git文件夾中,執行命令:it

git push --mirror gitlab@gitlab.xx.com:newgroups/newtest.com.git
複製代碼

命令執行結果以下:io

Counting objects: 8569, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2025/2025), done.
Writing objects: 100% (8569/8569), 83.36 MiB | 28.47 MiB/s, done.
Total 8569 (delta 6374), reused 8569 (delta 6374)
To gitlab@github.meizu.com:private/ba.meizu.com.git
 + 5269023...ec9c11e master -> master (forced update)
 * [new branch]      feature/eco -> feature/eco
 * [new branch]      origin/feature/eco -> origin/feature/eco
複製代碼

如上所示,完整的Git倉庫就遷移歸來了,包括記錄和各個分支。

相關文章
相關標籤/搜索