Git學習:(二)遠程倉庫的管理

爲了將本地倉庫備份到Github上的遠程倉庫,實現文件備份和多機協同工作的功能則需要了解遠程倉庫的管理。

一、生成SSH Key

  • SSH 爲 Secure Shell 的縮寫,由 IETF 的網絡小組(Network Working Group)所制定。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。簡單說,SSH是一種網絡協議,用於計算機之間的加密登錄。

  • 其次,SSH key提供了一種與GitHub通信的方式,實現本地git倉庫到github上遠程倉庫的安全傳輸。通過SSH Key,能夠在不輸入密碼的情況下,將GitHub作爲自己的遠程服務器,進行版本控制。
1.檢查SSH key是否存在於本機
  • 在linux或者windows的的用戶目錄下查看有沒有.ssh目錄,如果有,再看看這個目錄下有沒有id_rsa和id_rsa.pub這兩個文件,如果已經有了,可直接跳到步驟3
2.生成新的SSH key
  • 打開Shell(Windows下打開Git Bash),創建SSH Key。
ssh-keygen -t rsa -C "[email protected]"
[email protected]:

注:網上有部分博客說郵箱要填自己的github註冊郵箱,其實是扯淡。因爲-C 後面的內容指的是該密鑰是註釋內容,也就是可選操作,所以郵箱填不填都是無所謂的。


之後一直回車就ok,然後可以在用戶主目錄裏找到.ssh目錄,裏面有id_rsa和id_rsa.pub兩個文件,這兩個就是SSH Key的祕鑰對,id_rsa是私鑰,不能泄露出去,id_rsa.pub是公鑰,可以放心地告訴任何人。

3.將SSH Key添加到GitHub中

打開github頁面上的“Account settings”,“SSH Keys”選項,選擇“Add SSH Key”,填上任意Title,在Key文本框裏粘貼id_rsa.pub文件的內容即可。
注:如果需要實現多臺機器都快對github上的遠程倉庫實現git託管,則需要將這些機器的公鑰都添加到github中。

4.測試SSH Key是否成功

使用命令“ssh -T [email protected]”,如果出現You’ve successfully authenticated, but GitHub does not provide shell access 。這就表示已成功連上github。

二、遠程倉庫的添加(先有本地庫後有遠程倉庫的情況)

在GitHub上創建遠程倉庫,既可以用作本地Git倉庫的備份,還可以作爲一個遠程倉庫,實現多人協同辦公的功能。
1.在GitHub上創建一個空的倉庫
2.本地倉庫與遠程倉庫關聯

  • 空倉庫創建好後,可以從這個倉庫克隆出新的倉庫到本地然後與之關聯。

  • 本地有文件的倉庫與github上的遠程倉庫關聯,然後將本地Git倉庫的文件推到github上。

打開Shell(Windows下打開Git Bash),進入到本地Git倉庫所在路徑,然後使用以下命令使其與GitHub上的遠程倉庫關聯。
方式一

git remote add origin https://github.com/用戶名/遠程倉庫名.git

方式二

git remote add origin [email protected]:用戶名/遠程倉庫名.git
  • 用戶名填寫自己的GitHub賬戶名,遠程倉庫名爲剛剛自己創建的倉庫的名稱。
  • https://github.com/用戶名/遠程倉庫名.git表示的使遠程倉庫的地址。

添加後,遠程庫的名字就是origin,這是Git默認的叫法,也可以改成別的,但是origin這個名字一看就知道是遠程庫。

3.本地倉庫的所有文件推送到github遠程倉庫上

git push -u origin master

後續使用過程中如果提交更新的文件需要推送到遠程倉庫,則使用git push origin master即可。

備註

當第一次使用Git的clone或者push命令連接GitHub時,會得到一個警告。這是因爲Git使用SSH連接,而SSH連接在第一次驗證GitHub服務器的Key時,需要你確認GitHub的Key的指紋信息是否真的來自GitHub的服務器,輸入yes回車即可。
確認方式:輸入yes前可以對照GitHub的RSA Key的指紋信息是否與SSH連接給出的一致。

Git會輸出一個警告,告訴你已經把GitHub的Key添加到本機的一個信任列表裏了。

三、先有遠程倉庫後有本地倉庫的情況,使用克隆方式

從零開發,那麼最好的方式是先創建遠程庫,然後克隆遠程倉庫到本地。
1.在本地創建一個文件夾,進入該文件的路徑
注:不必新建一個空的Git倉庫,然後從遠程倉庫克隆。
2.使用如下指令克隆遠程倉庫
方式1:

git clone [email protected]:用戶名/遠程倉庫名稱.git

方式2:

git clone https://github.com/用戶名/遠程倉庫名.git

兩種方式都可以,這是因爲git支持多種協議,默認的git://使用ssh,但也可以使用https等其他協議。
使用https除了速度慢以外,還有個最大的麻煩是每次推送都必須輸入口令,但是在某些只開放http端口的公司內部就無法使用ssh協議而只能用https。

參考資料:

廖雪峯官網教程。
SSH介紹和使用,SSH key教程

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