Git遠程倉庫的概念(3)


  多人協同作戰的時候,通常找一台電腦充當服務器的角色,每天24小時開機,其他每個人都從這個“服務器”倉庫克隆一份到自己的電腦上,並且各自把各自的提交推送到服務器倉庫里,也從服務器倉庫中拉取別人的提交。

github網站和git的關系

  github網站底層使用git技術,為每個組織和個人提供Git倉庫托管服務,省去搭建git服務器的步驟,方便全世界的開發者去共同維護一項開源項目或者私人項目。

  由於你的本地Git倉庫和GitHub倉庫之間的傳輸是通過SSH加密的,所以需要一點設置進行鑒權來保證傳輸的安全性。

 

第1步:創建SSH Key在用戶主目錄下(不是工程目錄),看看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsaid_rsa.pub這兩個文件,如果已經有了,可直接跳到下一步。如果沒有,打開Shell(Windows下打開Git Bash),創建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

你需要把郵件地址換成你自己的郵件地址,然后一路回車,使用默認值即可,由於這個Key也不是用於軍事目的,所以也無需設置密碼。

如果一切順利的話,可以在用戶主目錄里找到.ssh目錄,里面有id_rsaid_rsa.pub兩個文件,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

第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倉庫

##創建新的倉庫的命令
echo "# learn_git" >> README.md //創建文件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 remote add <shortname> <url> git push -u origin master //用於首次關聯本地master分支與github倉庫的master分支。之后推送和拉取可以簡化操作,如git push origin master

同步遠程倉庫到本地

git clone git@github.com:michaelliao/gitskills.git    //從遠程倉庫克隆到本地。

Git支持多種協議,包括https,但通過ssh支持的原生git協議速度最快。使用https最大的麻煩是每次推送都需要輸入口令。

命令小結

git remote add <shortname> <url> //添加遠程倉庫地址並指定名字

git push <遠程主機名> <本地分支名>:<遠程分支名> 

git push origin master //簡化的推送命令

git clone <url> [shortname] //克隆遠程倉到本地,並指定倉庫名字

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM