Git:學習筆記(三)—遠程倉庫

遠程倉庫

Git是分佈式版本控制系統,同一個Git倉庫,可以分佈到不同的機器上,如何分佈呢,最早,肯定只有一臺機器和一個原始版本庫,此後,別的機器可以‘克隆’這個原始版本庫,而且每臺機器的原始版本庫都是一樣的,沒有主次之分。
實際情況往往時這樣,找一臺電腦充當服務器的角色,每天24小時開機,其他每個人都從這個‘服務器’倉庫克隆一份到自己的電腦上,並且各自把各自的提交推送到這個服務器倉庫,也從服務器倉庫拉取別人的提交。
完全可以自己搭建一個Git服務器,不過現階段,爲了學習Git而去搭建一個Git服務器顯然有些小題大做,好在這個世界上有一個叫做Github的網站,從名字就可以看出,這是一個專門爲git提供倉庫託管服務的,所以,我們先來註冊一個github帳號使用使用這個東西。

SSH

又與本地Git倉庫與github倉庫之間的傳輸是通過SSH加密的,所以,首先需要配置ssh
1、生成SSH公鑰與私鑰,進入~/.ssh目錄。查看有沒有id_rsa與id_rsa.pub文件,有的話可以直接進行下一步,沒有的話使用以下命令生成,將郵箱地址換成你的,然後一路回車
ssh-keygen -t rsa -C "[email protected]"

2、登陸github帳號,進入後有上角點擊下拉按鈕,在其中選擇setting,進入後,選擇SSH
在這裏插入圖片描述
3、點擊NEW SSH key後,填入任意Title,然後在下面的文本框填入id_rsa.pub中的內容
在這裏插入圖片描述
點擊Add SSH key後就可以看到自己添加的key
在這裏插入圖片描述
爲什麼Github需要進行ssh認證呢,因爲Github需要確認你推送的提交確實是你推送的,而不是別人冒充的,而Git支持ssh協議,所以,只要Github知道了你的ssh公鑰,就可以確認只有你自己才能推送。
Github可以添加多個key,假如你有多個電腦,你可以向github上添加你每個電腦的ssh公鑰,這樣,不管你使用哪臺電腦,都可以向github倉庫推送了。
我們在github上創建的倉庫都是公開的,因此,所有人都可以看到你推送的內容,因爲,創建私有的倉庫是需要收費的,還有一個辦法就是自己打見一個Git服務器,別人就看不到你的推送了。

添加遠程庫

我們在github上面添加一個Git倉庫,然後與本地Git倉庫同步,這樣,Github上的遠程倉庫即可以做備份,又可以讓其他人通過該倉庫來進行協同工作,一舉兩得。
1、登陸Github網站,在有上角一個顯示爲+號的下拉選項中選擇New repository
在這裏插入圖片描述
在Repository name中填入gitdemo,其他保持默認不變,然後點擊最下方的Create Repository,這樣我們就成功的創建了一個github遠程倉庫
在這裏插入圖片描述
現在,在github上的這個遠程庫還是空的,github告訴我們,可以從這個倉庫克隆處新的倉庫,也可以把一個已有的本地倉庫與之關聯,然後,把本地倉庫的內容推送到遠程倉庫。
現在我們根據github的提示,在本地的gitdemo倉庫下執行下面的命令:
git remote add origin [email protected]:gd0306/gitdemo.git
origin是遠程庫的名字,你也可以指定爲其他名字
在這裏插入圖片描述
2、接下來,我們就可以把本地倉庫的內容推送到遠程倉庫了,根據github提示,使用以下命令:
git push -u origin master
在這裏插入圖片描述
把本地倉庫內容推送到遠程倉庫,使用git push命令,其實就是把master分支推送到遠程倉庫。
由於倉庫是空的,所以我們第一次推送master分支時,使用了-u參數,加上-u參數,Git不但會把本地master分支推送到遠程倉庫的新的master分支,還會將本地master分支與遠程master分支關聯起來,在以後推送或者拉取時就可以簡化命令。
推送成功後,在github遠程倉庫中就可以看到和本地倉庫一模一樣的內容:
在這裏插入圖片描述
從現在起,只要在本地倉庫中做了提交就可以使用命令 git push origin master 將最新的修改推送到遠程倉庫。

SSH警告

當你第一次使用pull或者push連接github時,會得到一個警告:

The authenticity of host 'github.com (13.229.188.59)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?

這是因爲Git使用ssh連接,而SSH連接在第一次驗證Github上的key時,需要你確認github的key的指紋信息是否真的來自github的服務器,輸入yes回車即可。
然後Git會輸出一個警告,告訴你已經把Github的key添加到本機的一個信任列表了。

Warning: Permanently added 'github.com,13.229.188.59' (RSA) to the list of known hosts.

這個警告只會出現一次,後面的操作就不會再出現了。

從遠程庫克隆

前面我們講的是現有本地庫再有遠程庫,將本地庫與遠程庫關聯,現在假設我們從零開發,最好的方法時先創建遠程庫,然後從遠程庫克隆。
1、登陸github網站,創建一個新的倉庫,叫gitskills。
在這裏插入圖片描述
這次我們勾選Initialize this repository with a README,這樣Github會自動爲我們創建一個README.md文件:
在這裏插入圖片描述
2、現在,遠程庫已經準備好了,我們使用git clone 克隆一個本地庫
git clone [email protected]:gd0306/gitskills.git
在這裏插入圖片描述
Git不僅支持ssh協議,還支持https,只是使用https速度慢,還有就是每次推送都必須輸入口令,但是有些公司只開放http端口,那就只能使用https了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章