多人協同做戰的時候,一般找一臺電腦充當服務器的角色,天天24小時開機,其餘每一個人都從這個「服務器」倉庫克隆一份到本身的電腦上,而且各自把各自的提交推送到服務器倉庫裏,也從服務器倉庫中拉取別人的提交。git
github網站和git的關係
github網站底層使用git技術爲每一個組織和我的提供Git倉庫託管服務的,省去搭建git服務器的步驟,方便全世界的開發者去共同維護一項開源項目或者私人項目。github
因爲你的本地Git倉庫和GitHub倉庫之間的傳輸是經過SSH加密的,因此須要一點設置,此處爲Github的設置,鏈接本身的服務器,原理與此相同。ruby
第1步:建立SSH Key。在用戶主目錄下(不是工程目錄),看看有沒有.ssh目錄,若是有,再看看這個目錄下有沒有
id_rsa
和id_rsa.pub
這兩個文件,若是已經有了,可直接跳到下一步。若是沒有,打開Shell(Windows下打開Git Bash),建立SSH Key:服務器$ ssh-keygen -t rsa -C "youremail@example.com"
你須要把郵件地址換成你本身的郵件地址,而後一路回車,使用默認值便可,因爲這個Key也不是用於軍事目的,因此也無需設置密碼。ssh
若是一切順利的話,能夠在用戶主目錄裏找到
.ssh
目錄,裏面有id_rsa
和id_rsa.pub
兩個文件,這兩個就是SSH Key的祕鑰對,id_rsa
是私鑰,不能泄露出去,id_rsa.pub
是公鑰,能夠放心地告訴任何人。fetch
第2步:添加SSH KEY。登錄GitHub,打開「Account settings->SSH and GPG Keys」頁面:而後,點「Add SSH Key」,填上任意Title,在Key文本框裏粘貼
id_rsa.pub
文件的內容。網站
爲何須要SSH KEY?
由於GitHub須要識別出你推送的提交確實是你推送的,而不是別人冒充的,而Git支持SSH協議,因此,GitHub只要知道了你的公鑰,就能夠確認只有你本身才能推送。固然,GitHub容許你添加多個Key。假定你有若干電腦,你一下子在公司提交,一下子在家裏提交,只要把每臺電腦的Key都添加到GitHub,就能夠在每臺電腦上往GitHub推送了。加密
建立git倉庫--從本地倉庫導入遠程倉庫
點擊new repository填入repository name,其餘保持默認,點擊create repository,就成功建立了一個新的git倉庫。而後Github會提示咱們能夠把這倉庫做爲新的倉庫,或者與本地倉庫作關聯,而後把本地倉庫內容推送到github倉庫url
##建立新的倉庫的命令
echo "# learn_git" >> README.md git init git add README.md git commit -m "first commit" git remote add origin https://github.com/chengfng/learn_git.git //添加遠程倉庫地址 git push -u origin master //用於首次關聯本地master分支與github倉庫的master分支。以後推送和拉取能夠簡化操做,如 git push origin master
##把本地倉庫推送到github倉庫
git remote add origin https://github.com/chengfng/learn_git.git
git push -u origin master
同步遠程倉庫到本地
git clone git@github.com:michaelliao/gitskills.git //從遠程倉庫克隆到本地。spa
Git支持多種協議,包括
https
,但經過ssh
支持的原生git
協議速度最快。使用https最大的麻煩是每次推送都須要輸入口令。
命令小結
git remote add origin git地址 //添加遠程倉庫地址
git push <遠程主機名> <本地分支名>:<遠程分支名>
git push origin master //簡化的推送命令
git clone git地址 //克隆命令
git fetch 和git pull的區別
git pull = git fetch + git merge。
git fetch 只是更新了本地庫的commi ID。
git pull 是把本地庫更新,而後再merge,HEAD的值又發生了變化。
文章參考廖雪峯Git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000