一個專案push到多個遠端Git倉庫

devin發表於2017-09-21

我建立了一個專案,然後通過下面的命令 push 到了 GitHub 上。如何再將這個專案 push 到其他遠端倉庫呢?

git remote add github https://github.com/zxbetter/test.git
git push -u github master

方法一: 使用 git remote add 命令

1.1# 如下命令檢視遠端倉庫的情況,可以看到只有一個叫 github 的遠端倉庫。

git remote
github

git remote -v
github  https://github.com/zxbetter/test.git (fetch)
github  https://github.com/zxbetter/test.git (push)

1.2# 使用如下命令再新增一個遠端倉庫(這裡以碼云為例)

git remote add oschina https://git.oschina.net/zxbetter/test.git

1.3# 再次檢視遠端倉庫的情況,可以看到已經有兩個遠端倉庫了。然後再使用相應的命令 push 到對應的倉庫就行了。這種方法的缺點是每次要 push 兩次。

git remote
github
oschina

git remote -v
github  https://github.com/zxbetter/test.git (fetch)
github  https://github.com/zxbetter/test.git (push)
oschina https://git.oschina.net/zxbetter/test.git (fetch)
oschina https://git.oschina.net/zxbetter/test.git (push)

方法二: 使用 git remote set-url 命令

2.1# 刪除方法一的 oschina 遠端倉庫。

git remote rm oschina

2.2# 使用如下命令新增遠端倉庫。

git remote set-url --add github https://git.oschina.net/zxbetter/test.git

2.3# 檢視遠端倉庫情況。可以看到 github 遠端倉庫有兩個 push 地址。這種方法的好處是每次只需要 push 一次就行了。

git remote -v
github  https://github.com/zxbetter/test.git (fetch)
github  https://github.com/zxbetter/test.git (push)
github  https://git.oschina.net/zxbetter/test.git (push)

方法三: 修改配置檔案

開啟 .git/config 找到 [remote "github"],新增對應的 url 即可,效果如下。這種方法其實和方法二是一樣的。

[remote "github"]
    url = https://github.com/zxbetter/test.git
    fetch = +refs/heads/*:refs/remotes/github/*
    url = https://git.oschina.net/zxbetter/test.git

關於 git pull

方法二和三在 push 的時候比較方便。但是在 pull 的時候只能從方法三中的第一個 url 地址拉取程式碼。而方法一則不存在這種問題(可能要解決衝突)。
所以,如果只進行 push 操作,推薦方法二和三,如果也要進行 pull 操作,推薦方法一。

參考

將專案提交到兩個git倉庫(github和oschina)

Git提交到多個遠端倉庫

相關文章