一. why
項(xiàng)目需要用到github第三方庫(kù), 但是直接依賴github是有問(wèn)題, 第一有墻容易失敗, 第二github不可控(某天中美打架人家刪庫(kù))等, 所以需要在gitlab映射一份github的庫(kù).
二. 方案選擇
2.1 拷貝
先本地git clone github, 然后將特定分支(tag)代碼拷貝出來(lái), 推送到gitlab
優(yōu): 簡(jiǎn)單
劣: 丟失github本身的信息
2.2 同步
先本地git clone github, 然后添加gitlab的源, 并將github信息推送到gitlab
優(yōu): 保持和github同步
劣: 保留所有信息, 庫(kù)會(huì)大一點(diǎn)(冗余)
綜合來(lái)講: 還是第二種方案更好點(diǎn)
三. 實(shí)踐
- clone 源碼
git clone https://github.com/**.git - 查看源
git remote -v
git remote -v
origin https://github.com/google/double-conversion.git (fetch)
origin https://github.com/google/double-conversion.git (push)
- 修改名稱
git remote rename origin github - 再次查看, 發(fā)現(xiàn)源從origin換成了github
git remote -v
github https://github.com/boostorg/boost.git (fetch)
github https://github.com/boostorg/boost.git (push)
- 添加gitlab源
git remote add origin http://gitlab.**.git - 再次查看
git remote -v
github https://github.com/boostorg/boost.git (fetch)
github https://github.com/boostorg/boost.git (push)
origin http://gitlab.**.git (fetch)
origin http://gitlab.**.git (push)
- 推送到gitlab
git push origin master - 同步tag
git push origin --tags - done
去gitlab查看信息, 和github一致, 分支和tag都相同.