以前的章節所說的是本地Git倉庫的操做,版本管理的優越性顯然不會僅僅在本地。遠程倉庫也就是服務器或是網絡端的倉庫操做也是必須的。git
本文具體說明 Git 的遠程倉庫操做,示例是在 GitHub 上進行的,若存在服務器或其餘站點,操做也是相似的。GitHub 網址:https://github.com/github
一般團隊的git庫都是已創建的,你須要將遠程git庫的文件 clone 至你本地,git可快速完成這一操做。服務器
首先,你得知道遠程 git庫的服務器地址,如,個人 github 庫示例:https://github.com/feesland/test.git ; 如果服務器,域名可能爲相似 192.8.8.8 的 ip 等。網絡
git clone <repository> 克隆 git 庫
ssh
可帶多個參數,詳情請 help,一般用做將遠程git庫克隆至本地。以下(可加指定目錄):分佈式
完成後 》 學習
若是有多我的協做開發,那麼每一個人各自從遠程克隆一份就能夠了。fetch
若使用GitHub,可能會注意到可給出的地址不止一個,還能夠用 ssh or subversion url
至於選取哪一個,請參閱:https://help.github.com/articles/which-remote-url-should-i-use/
推薦使用 https,只是每次推送都必須輸入口令;某些只開放http端口的公司內部就沒法使用ssh協議而只能用https。
spa
克隆本地庫是創建在已有遠程庫的基礎上的,如今咱們來討論如下的狀況:
如果先有本地庫,又想在GitHub建立一個Git倉庫,而且讓這兩個倉庫進行遠程同步,則須添加本地庫至遠程庫。
首先,本地Git庫狀態clean;其次,遠程空的Git庫需準備好,依然使用GitHub做爲示例。
本地Git庫
遠程庫(本次使用SSH示例)
git remote add <name><url> 添加遠程庫
可帶多個參數,詳情請 help (可加對應分支等,可學完以後分支後再來嘗試)
添加後,遠程庫的名字就是origin,這是Git默認的叫法,也能夠改爲別的,可是origin這個名字一看就知道是遠程庫。
gitHub 也有相關的提示操做,以下:
這邊看到第二句 git push ... 便是後續的 推送至遠程倉庫命令
git push <url> 推送至遠程庫
把本地庫的內容推送到遠程,用git push命令,其實是把當前分支master推送到遠程。
因爲遠程庫是空的,咱們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在之後的推送或者拉取時就能夠簡化命令。
這邊能夠看到推送會要求輸入github的用戶名及對應密碼(因爲是https,其餘的可用加公鑰至遠程庫的方式而無需輸入);推送成功後,可在GitHub頁面中看到遠程庫的內容已經和本地同樣:
此後,每次本地提交後,只要有必要,就可使用命令 git push origin master 推送最新修改;
分佈式版本系統的最大好處之一是在本地工做徹底不須要考慮遠程庫的存在,也就是有沒有聯網均可以正常工做,而SVN在沒有聯網的時候是拒絕幹活的!當有網絡的時候,再把本地提交推送一下就完成了同步,真是太方便了!
若遠程庫作了更改,本地倉庫須要獲取最新,則要使用 git fetch 或 git pull 命令。
git fetch origin <branch> 從遠程獲取最新版本到本地,不會自動merge
git pull origin <branch> 從遠程獲取最新版本並merge到本地
有關分支、merge及衝突處理詳情請關注後續的 Git 學習教程