在已經(jīng)習(xí)慣使用git同步寫(xiě)代碼褪迟,github無(wú)疑是最的托管平臺(tái)美浦,但是國(guó)內(nèi)由于“你懂的”原因,速度很慢戚哎,有時(shí)無(wú)法訪(fǎng)問(wèn)裸诽,于是想把自己的代碼同步到多個(gè)不同的遠(yuǎn)程倉(cāng)庫(kù)備份。
我的主要倉(cāng)庫(kù):
[github] https://github.com/wonux.test.git 主倉(cāng)庫(kù)
[oschina] https://git.oschina.net/wonux/test.git 國(guó)內(nèi)常用倉(cāng)庫(kù)
另外型凳,國(guó)內(nèi)還有coding(原來(lái)的gitcafe合并到了coding),csdn code等丈冬。
添加同名多遠(yuǎn)程倉(cāng)庫(kù)
添加一個(gè)remote,這里是all,也可以是別的名字(如origin)
git remote add all https://github.com/wonux.test.git
再添加另一個(gè):
git remote set-url --add all https://git.oschina.net/wonux/test.git
重復(fù)向同一個(gè)遠(yuǎn)程倉(cāng)庫(kù)名字添加需要
set-url --add
參數(shù)
如果有多個(gè),按照上面這一個(gè)命令進(jìn)行添加.
向多遠(yuǎn)程倉(cāng)庫(kù)推送代碼
git push all --all
這樣就會(huì)一次提交到多個(gè)庫(kù)了,上面命令輸出如下:
git push all --all
Username for 'https://github.com': wonux
Password for 'https://wonux@github.com':
Counting objects: 68, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (56/56), done.
Writing objects: 100% (68/68), 72.16 KiB | 0 bytes/s, done.
Total 68 (delta 13), reused 0 (delta 0)
To https://github.com/wonux/test.git
* [new branch] master -> master
Username for 'https://git.oschina.net': wonux
Password for 'https://wonux@git.oschina.net':
Counting objects: 68, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (56/56), done.
Writing objects: 100% (68/68), 72.16 KiB | 0 bytes/s, done.
Total 68 (delta 13), reused 0 (delta 0)
To https://git.oschina.net/wonux/test.git
* [new branch] master -> master
記住不要忘記--all
參數(shù),如果不加--all
甘畅,則無(wú)法推送殷蛇,提示:
git push all
warning: push.default is unset; its implicit value has changed in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the traditional behavior, use:
git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.
Since Git 2.0, Git defaults to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.
See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
fatal: unable to access 'https://github.com/wonux/test.git/': Couldn't resolve host 'github.com'
分析配置文件
在操作完上面的添加命令后,如果我們打開(kāi).git/config
文件,我們可以看到這樣的配置:
[remote "all"]
url = https://github.com/wonux/test.git
fetch = +refs/heads/*:refs/remotes/all/*
url = https://git.oschina.net/wonux/test.git
因此橄浓,直接在.git/config
文件中添加:
[remote "all"]
url = https://github.com/wonux/test.git
fetch = +refs/heads/*:refs/remotes/all/*
url = ……
有多少個(gè)遠(yuǎn)程庫(kù),就配置多少個(gè)url即可.
從這里可以看出,第一種方法生成的配置中還有一個(gè)fetch配置,這個(gè)配置可以完全去掉.