一般來說一個 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