現在的情景是,你已經在本地建立了一個Git倉庫後,又想在GitHub建立一個Git倉庫,并且讓這兩個倉庫進行遠端同步,這樣,GitHub上的倉庫既可以作為備份,又可以讓其他人通過該倉庫來協作,真是一舉多得。
首先,登陸GitHub,然後,在右上角找到“<code>Create a new repo</code>”按鈕,建立一個新的倉庫:

在<code>Repository name填入learngit</code>,其他保持預設設定,點選“<code>Create repository</code>”按鈕,就成功地建立了一個新的Git倉庫:
目前,在GitHub上的這個learngit倉庫還是空的,GitHub告訴我們,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯,然後,把本地倉庫的内容推送到GitHub倉庫。
現在,我們根據GitHub的提示,在本地的<code>learngit</code>倉庫下運作指令:
請千萬注意,把上面的使用者名替換成你自己的GitHub賬戶名,否則,你在本地關聯的就是w我的遠端庫,關聯沒有問題,但是你以後推送是推不上去的,因為你的SSH Key公鑰不在我的賬戶清單中。
添加後,遠端庫的名字就是origin,這是Git預設的叫法,也可以改成别的,但是<code>origin</code>這個名字一看就知道是遠端庫。
下一步,就可以把本地庫的所有内容推送到遠端庫上:
把本地庫的内容推送到遠端,用<code>git push</code>指令,實際上是把目前分支master推送到遠端。
由于遠端庫是空的,我們第一次推送<code>master</code>分支時,加上了<code>-u</code>參數,Git不但會把本地的master分支内容推送的遠端新的master分支,還會把本地的master分支和遠端的master分支關聯起來,在以後的推送或者拉取時就可以簡化指令。
推送成功後,可以立刻在GitHub頁面中看到遠端庫的内容已經和本地一模一樣:
從現在起,隻要本地作了送出,就可以通過指令:
把本地master分支的最新修改推送至GitHub,現在,你就擁有了真正的分布式版本庫!
當你第一次使用Git的clone或者push指令連接配接GitHub時,會得到一個警告:
這是因為Git使用SSH連接配接,而SSH連接配接在第一次驗證GitHub伺服器的Key時,需要你确認GitHub的Key的指紋資訊是否真的來自GitHub的伺服器,輸入yes回車即可。
Git會輸出一個警告,告訴你已經把GitHub的Key添加到本機的一個信任清單裡了:
這個警告隻會出現一次,後面的操作就不會有任何警告了。
如果你實在擔心有人冒充GitHub伺服器,輸入yes前可以對照GitHub的RSA Key的指紋資訊是否與SSH連接配接給出的一緻。
要關聯一個遠端庫,使用指令<code>git remote add origin git@server-name:path/repo-name.git</code>;
關聯後,使用指令<code>git push -u origin master</code>第一次推送<code>master</code>分支的所有内容;
此後,每次本地送出後,隻要有必要,就可以使用指令<code>git push origin master</code>推送最新修改;
分布式版本系統的最大好處之一是在本地工作完全不需要考慮遠端庫的存在,也就是有沒有聯網都可以正常工作,而SVN在沒有聯網的時候是拒絕幹活的!當有網絡的時候,再把本地送出推送一下就完成了同步,真是太友善了!