請自行註冊GitHub帳號。因爲你的本地Git倉庫和GitHub倉庫之間的傳輸是經過SSH加密的,因此,須要一點設置:git
第1步:建立SSH Key。在用戶主目錄下,看看有沒有.ssh目錄,若是有,再看看這個目錄下有沒有id_rsa
和id_rsa.pub
這兩個文件,若是已經有了,可直接跳到下一步。若是沒有,打開Shell(Windows下打開Git Bash),建立SSH Key:github
你須要把郵件地址換成你本身的郵件地址,而後一路回車,使用默認值便可,因爲這個Key也不是用於軍事目的,因此也無需設置密碼。
若是一切順利的話,能夠在用戶主目錄裏找到目錄,裏面有和兩個文件,這兩個就是SSH Key的祕鑰對,是私鑰,不能泄露出去,是公鑰,能夠放心地告訴任何人。
$ ssh-keygen -t rsa -C "youremail@example.com" .sshid_rsaid_rsa.pubid_rsaid_rsa.pub
第2步:登錄GitHub,打開「Account settings」,「SSH Keys」頁面:sql
而後,點「Add SSH Key」,填上任意Title,在Key文本框裏粘貼id_rsa.pub
文件的內容:ruby
爲何GitHub須要SSH Key呢?由於GitHub須要識別出你推送的提交確實是你推送的,而不是別人冒充的,而Git支持SSH協議,因此,GitHub只要知道了你的公鑰,就能夠確認只有你本身才能推送。服務器
固然,GitHub容許你添加多個Key。假定你有若干電腦,你一下子在公司提交,一下子在家裏提交,只要把每臺電腦的Key都添加到GitHub,就能夠在每臺電腦上往GitHub推送了。ssh
首先,登錄GitHub,而後,在右上角找到「Create a new repo」按鈕,建立一個新的倉庫:分佈式
在Repository name填入learngit
,其餘保持默認設置,點擊「Create repository」按鈕,就成功地建立了一個新的Git倉庫:this
目前,在GitHub上的這個learngit
倉庫仍是空的,GitHub告訴咱們,能夠從這個倉庫克隆出新的倉庫,也能夠把一個已有的本地倉庫與之關聯,而後,把本地倉庫的內容推送到GitHub倉庫。加密
如今,咱們根據GitHub的提示,在本地的learngit
倉庫下運行命令spa
$ git remote add origin git@github.com:michaelliao/learngit.git
請千萬注意,把上面的michaelliao
替換成你本身的GitHub帳戶名,不然,你在本地關聯的就是個人遠程庫,關聯沒有問題,可是你之後推送是推不上去的,由於你的SSH Key公鑰不在個人帳戶列表中。
添加後,遠程庫的名字就是origin
,這是Git默認的叫法,也能夠改爲別的,可是origin
這個名字一看就知道是遠程庫。
michaelliaooriginorigin
下一步,就能夠把本地庫的全部內容推送到遠程庫上:
$ git push -u origin master
把本地庫的內容推送到遠程,用git push
命令,其實是把當前分支master
推送到遠程。
因爲遠程庫是空的,咱們第一次推送master
分支時,加上了-u
參數,Git不但會把本地的master
分支內容推送的遠程新的master
分支,還會把本地的master
分支和遠程的master
分支關聯起來,在之後的推送或者拉取時就能夠簡化命令。
推送成功後,能夠馬上在GitHub頁面中看到遠程庫的內容已經和本地如出一轍.
從如今起,只要本地做了提交,就能夠經過命令:
把本地分支的最新修改推送至GitHub,如今,你就擁有了真正的分佈式版本庫!
$ git push origin mastermaster
當你第一次使用Git的clone
或者push
命令鏈接GitHub時,會獲得一個警告:
這是由於Git使用SSH鏈接,而SSH鏈接在第一次驗證GitHub服務器的Key時,須要你確認GitHub的Key的指紋信息是否真的來自GitHub的服務器,輸入yes
回車便可。
Git會輸出一個警告,告訴你已經把GitHub的Key添加到本機的一個信任列表裏了:這個警告只會出現一次,後面的操做就不會有任何警告了。
要關聯一個遠程庫,使用命令git remote add origin git@server-name:path/repo-name.git
;
關聯後,使用命令git push -u origin master
第一次推送master分支的全部內容;
此後,每次本地提交後,只要有必要,就可使用命令git push origin master
推送最新修改;
分佈式版本系統的最大好處之一是在本地工做徹底不須要考慮遠程庫的存在,也就是有沒有聯網均可以正常工做
首先,登錄GitHub,建立一個新的倉庫,名字叫gitskills
:
咱們勾選Initialize this repository with a README
,這樣GitHub會自動爲咱們建立一個README.md
文件。建立完畢後,能夠看到README.md
文件:
如今,遠程庫已經準備好了,下一步是用命令git clone
克隆一個本地庫:
$ git clone git@github.com:michaelliao/gitskills.git
注意把Git庫的地址換成你本身的,而後進入gitskills
目錄看看,已經有README.md
文件了
$ cd gitskills $ ls README.md
你也許還注意到,GitHub給出的地址不止一個,還能夠用https://github.com/michaelliao/gitskills.git
這樣的地址。實際上,Git支持多種協議,默認的git://
使用ssh,但也可使用https
等其餘協議。
使用https
除了速度慢之外,還有個最大的麻煩是每次推送都必須輸入口令,可是在某些只開放http端口的公司內部就沒法使用ssh
協議而只能用https
。