場景:
git服務遷移,更換服務地址,保留分支、日誌、標籤、版本等
前提:
- 新建一個空文件夾(作爲過渡操作文件夾,爲了避免對原項目造成影響)。
- 新的git服務器無需初始化git目錄
操作
- 克隆服務代碼至空的文件夾中,
git clone https://github.com/...;(這裏的地址爲當前的git服務地址)
- 克隆完成後,進入項目文件夾,可以查看本地的項目分支,會發現只有一個master分支(目的需要拉去服務中所有分支),例:
git branch
- 拉取所有分支命令:
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all
執行完成後,git branch 會發現所有的分支
- 上傳到新的git服務器,前提需要添加新的源,當前的源可以使用以下命令查看
git remote 或者git remote -v
- 使用以下命令添加新的源,此時可以隨便添加一個源名稱,事後可以修改源名稱,例,添加一個aorigin源,
這裏的後面地址爲新的git服務的地址
git remote add aorigin https://github.com/...
- 推送所有分支到新的git服務器
git push -u aorigin --all
- 移除舊的源,以及修改新源名稱
git remote rm origin
git remote rename aorigin origin
- 到此新的git服務器的代碼已經全部上傳完畢,可以刪除此臨時過渡的項目文件夾
切換目錄到原項目路徑下,將原項目的git服務地址更換爲新的git服務地址,
git remote set-url origin https://github.com/...(地址爲新的git服務地址)