git本地倉庫關聯多個remote,怎麼用本地一個分支向不同remote不同分支推送代碼?
01-02
問題背景是這樣的:
為了同時使用http://coding.net和http://github.com兩個網站的pages服務,我本地git倉庫關聯了兩個remote倉庫,分別是http://coding.net和http://github.com遠程庫的,兩個遠程庫的pages服務分支名分別是coding-pages和gh-pages。我本地已經添加了這兩個遠程庫,假設我現在本地開發分支名字為pagesServe,現在代碼commit提交好後,怎麼分別向coding的coding-pages分支和github的gh-pages分支推送現在的代碼呢?
拋開問題背景本身的描述為:我本地開發分支,名字為A,每次開發完,要分別把代碼推送到遠程庫remote01的B分支和遠程庫remote02的C分支。
這樣的設想可行嗎?操作流程是什麼?我是git小白,所以您講的越詳細越好。謝謝大家。
格式為:
git push [遠程庫名] [本地分支名] : [遠程分支名]具體操作為:git push remote01 A:Bgit push remote02 A:C瀉藥。
1. 如果你本地分支跟遠程的分支名一樣,那很簡單,直接:git push coding branch1
git push github branch1而且也建議這種方式。2. 如果你本地分支跟遠程分支不一樣,那如下:
git push coding localbranch:branch1git push github localbranch:branch1非常不建議這樣使用,本地分支跟遠程分支一一對應起來是最好的管理方式。3. 如果你每次本地分支更新之後都需要同步到兩個遠程倉庫,每次都手動push各個倉庫未免有些麻煩,於是就有了下面這種方式:
git remote add all http://github.com
git remote set-url origin --push --add http://coding.netgit remote set-url origin --push --add http://github.com
上述代碼什麼意思呢?就是你設置了一個all的遠程倉庫,這個all關聯了coding和github的遠程地址,以後只需要執行:git push all branch就直接向以上兩個遠程倉庫同時push代碼了。這種無聊的操作如果每次都手動推,效率太低了。
上持續集成工具吧,輪子都是現成的。可以參考我這個Github項目
GitHub - lowwor/lowwor.com這是一個基於Hugo搭建的Blog,利用了http://wercker.com提供的服務。每次寫完文章以後,只要把源碼推到Github的master分支里,它就會自動幫你編譯,生成靜態頁面,部署到Github的gh-pages和Coding的coding-pages上。具體的部署可以參考下面的鏈接
Hugo利用Wercker自動部署:
Hugo - Automated deployments with Wercker部署到coding-pages的wercker step:GitHub - lowwor/step-coding-pages: Wercker steps to auto deploy to coding.net coding-pages題主,你寫個bash腳本叫pushall.sh,裡面是你每次需要push的所有 git 命令,以後每次想push直接./pushsll.sh就好了,並不需要什麼額外的工具,自動化的事情很多幾個腳本就能解決,樓上幾位都走偏了
如果題主使用hexo來建站,可以直接在配置文件里添加多個倉庫如下:
Deployment- 建立/添加遠程倉庫 :使用 git remote add命令
- git remote add 遠程倉庫名1 遠程倉庫地址1
- git remote add 遠程倉庫名2 遠程倉庫地址2
- 推送代碼 :使用 git push 命令
- git push 遠程倉庫名1 本地分支名1
- git push 遠程倉庫名2 本地分支名2
上面的回答都沒有真正解決題主的問題
我在這裡補充一下
很簡單啊
把分支先拉下來比如origin/master是A網站的 github/master2是B網站的每次在master上面改動 然後push到遠程倉庫再切換到master2下面 把master的代碼merge下來(這樣兩邊的代碼就同步了)最後 push到遠程(如果你用了ide會自己對應遠程倉庫的名字)否則就不能直接push了運行git push github master2:master如果還有什麼問題,歡迎隨時提問推薦閱讀:
※如何在 GitHub 下載某個程序的特定版本(代碼)?
※gitlab或github下fork後如何同步源的新更新內容?
※git怎麼控制成員的許可權?
※如何優雅地使用 Git?
※github for windows安裝失敗了,怎麼辦?
TAG:Git |