前面的話
本文將主要介紹如何使用Github來托管Git服務
SSH
大多數Git服務器都會選擇使用SSH公鑰來進行授權。系統中的每個用戶都必須提供一個公鑰用于授權
首先先確認一下是否已經有一個公鑰了。SSH公鑰默認儲存在賬戶的主目錄下的~/.ssh目錄
有.pub后綴的文件就是公鑰,另一個文件則是密鑰

假如沒有這些文件,或者干脆連.ssh目錄都沒有,可以用ssh-keygen來創建
現在,刪除.ssh目錄,對SSH重新生成

下面使用ssh-keygen命令來創建SSH,這里需要把郵件地址換成自己的郵件地址,然后一路回車,使用默認值即可,由于這個Key也不是用于軍事目的,所以也無需設置密碼

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

SSH的公鑰如下所示:

接下來,登陸GitHub,打開“Settings”,“SSH Keys”頁面

然后,點“New SSH Key”,填上任意Title,在Key文本框里粘貼id_rsa.pub
文件的內容

點擊"Add SSH key"按鈕后,結果如下所示:

為什么GitHub需要SSH Key呢?因為GitHub需要識別出你推送的提交確實是你推送的,而不是別人冒充的,而Git支持SSH協議,所以,GitHub只要知道了你的公鑰,就可以確認只有你自己才能推送
當然,GitHub允許你添加多個Key。假定你有若干電腦,一會兒在公司提交,一會兒在家里提交,只要把每臺電腦的Key都添加到GitHub,就可以在每臺電腦上往GitHub推送了
在GitHub上托管的Git倉庫,任何人都可以看到,但是只有你自己才能修改。所以,不要把敏感信息放進去
添加本地庫
下面添加一個名稱為'mygit'的本地庫,工作目錄下有一個名稱為'a.txt'的文件,其內容是'111',并被提交


添加遠程庫
現在的情景是,你已經在本地創建了一個Git倉庫后,又想在GitHub創建一個Git倉庫,并且讓這兩個倉庫進行遠程同步,這樣,GitHub上的倉庫既可以作為備份,又可以讓其他人通過該倉庫來協作
下面要建立一個名稱為'learngit'的倉庫,由于事先已經添加過了。所以,先把其刪除
進入'learngit'的倉庫界面,找到'Settings'按鈕

在頁面最下方,找到'Delete this repository'按鈕

點擊該按鈕后,輸入要刪除的倉庫名稱,點擊'I understand the consequences, delete this reposiytory'按鈕即可刪除

接下來,重新添加名稱為'learngit'的倉庫。點擊右上角'+'號彈出的'New repository'

輸入倉庫名稱Repository name為'learngit',倉庫介紹Description為'learn git',點擊'Create repository'按鈕,即可添加成功

添加成功后,彈出如下界面。目前,在GitHub上的這個'learngit'倉庫還是空的,GitHub告訴我們,可以從這個倉庫克隆出新的倉庫,也可以把一個已有的本地倉庫與之關聯,然后,把本地倉庫的內容推送到GitHub倉庫

接下來,需要對遠程庫'learngit'和本地庫'mygit'進行關聯
$ git remote add origin git@github.com:【GitHub帳號名】/【遠程庫的名稱】.git
添加后,遠程庫的名字就是origin
,這是Git默認的叫法,也可以改成別的,但是origin
這個名字一看就知道是遠程庫
如果已經進行了關聯,或者關聯錯了,則需要先刪除關聯
$ git remote rm origin
刪除后,重新添加關聯

接下來,把本地庫'mygit'里的所有內容推送到遠程庫'learngit'中
把本地庫的內容推送到遠程,用git push
命令,實際上是把當前分支master
推送到遠程
由于遠程庫是空的,我們第一次推送master
分支時,加上了-u
參數,Git不但會把本地的master
分支內容推送到遠程新的master
分支,還會把本地的master
分支和遠程的master
分支關聯起來,在以后的推送或者拉取時就可以簡化命令

推送成功后,可以立刻在GitHub頁面中看到遠程庫的內容已經和本地一模一樣

從現在起,只要本地作了提交,就可以通過以下命令,把本地master
分支的最新修改推送至GitHub
$ git push origin master
克隆遠程庫
前面我們介紹先有本地庫,后有遠程庫的情況。現在,假設我們從零開發,那么最好的方式是先創建遠程庫,然后,從遠程庫克隆
首先,登陸GitHub,創建一個新的倉庫,名字叫gitskills

勾選Initialize this repository with a README
,這樣GitHub會自動為我們創建一個README.md
文件。創建完畢后,可以看到README.md
文件

現在,遠程庫已經準備好了,下一步是用命令git clone
克隆一個本地庫
$ git clone git@github.com:【GitHub用戶名】/【Github遠程庫名稱】.git
在本地電腦的D盤新建一個名稱為'b'的目錄,然后將遠程庫克隆到本地

此時,本地已經有gitskills目錄,在該目錄下已經有README.md文件了

如果有多個人協作開發,那么每個人各自從遠程克隆一份就可以了
文章列表