讓你的 Git 一次 Push 到多個不同的遠端吧!
前後端工程師,善用 JavaScript、HTML 5、CSS 3 和 Golang 與 PHP、Node.js 、C#。目前正為台灣的社群網站進行趕工,然而這東西卻趕了很久。

一般來說一個 Git 都只會 Push 到一個遠端,但是這樣是很不安全的,假設那個唯一的遠端掛了,你的資料也就跟著不見了當然本機還有),不過我個人還是會推薦一次 Push 到多個遠端。

那我 Push 的時候需要打兩行指令嗎?

不用,我們把多個遠端的網址都設定在 Origin,如此一來你只需要打 git push 就可以一次 Push 到多個遠端。


1. 事先準備

首先你要先替你的一個專案準備至少一個不同 Git 伺服器的倉庫,如果你覺得額外多一個倉庫還不夠安心,要新增到幾百個都可以,先假設稍後要新增一個遠端:

[email protected]:Test/Test.git

2. 查看目前所有的路徑

你可以先輸入 git remote -v 查看所有遠端路徑。(push) 意味著會被推送的遠端,而 (fetch) 則是可供拉回的遠端,一般只有一個 Fetch。

$ git remote -v
origin [email protected]:Test/Test.git (fetch)
origin [email protected]:Test/Test.git (push)

3. 新增一個 Origin 路徑

我們透過下列方式新增一個 Origin 的遠端,依照我們的範例,就像這樣。

$ git remote set-url origin --push --add [email protected]:Test/Test.git

4. 最終檢查

接著再次輸入 git remote -v 檢查剛才新增的遠端路徑。

$ git remote -v
origin [email protected]:Test/Test.git (fetch)
origin [email protected]:Test/Test.git (push)
origin [email protected]:Test/Test.git (push)

最後我們 Push 的時候就會一次 Push 到兩個地方了。

$ git push
Counting objects: 55, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (24/24), done.
Writing objects: 100% (28/28),
        6.99 KiB | 0 bytes/s, done.
Total 28 (delta 20), reused 0 (delta 0)
To [email protected]:Test/Test.git
f54bad0..9a95841 master -> master
Counting objects: 55, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (24/24), done.
Writing objects: 100% (28/28),
        6.99 KiB | 0 bytes/s, done.
Total 28 (delta 20), reused 0 (delta 0)
To [email protected]:Test/Test.git
f54bad0..9a95841 master -> master