如何在本地克隆遠端github倉庫

Limyes發表於2018-04-01
作為一名合格的程式設計師,學會使用Git是必不可少的技能。

在開始之前先了解一下Git是什麼,Git是最先進的分散式版本控制系統,在我的理解裡,就是一個公用的手動進度條,你想讓它定在哪兒就能定在哪兒,不管向前還是向後,只要你曾經留下過操作記錄,它就能按照你的想法停在想停的地方,同時還能多人操作,互不干擾。互不干擾的意思就是在共有的基礎上,自己可以加點想加的東西,同時不影響別人使用,大概就是這個意思。Git Bush是用於windows系統下方便管理git的一個工具,模擬了Linux的環境,解析git命令。

Git安裝:

下載:直接到Git官網根據不同作業系統和位數選擇合適的版本下載

安裝:原則上一路確定是沒什麼問題的,如果有特殊需求可以仔細看下中間一些選項自己更改一下。

使用:

1 首先需要一個github賬號,點選右上角的加號新建一個倉庫。

2 開啟git bush ,會出現如圖所示的介面:(第一次開啟沒有後面的master)

如何在本地克隆遠端github倉庫

生成ssh key:

ssh是一種安全傳輸模式,github每次推送程式碼時要驗證使用者是合法的,所以每次都要輸入賬號密碼,但是每次輸又很麻煩,所以利用ssh在本機上生成唯一的一個ssh公鑰和一個金鑰,公鑰設定在github上,每次推送程式碼的時候,github會根據已經儲存的公鑰和本機裡的私鑰是否匹配對,配對則允許推送。簡單來說就是給本地和遠端github提供一個身份認證標識,來確保資訊傳輸的安全。

生成ssh key的命令為ssh -keygen -t rsa -C "xxx" 

-t rsa代表指定金鑰型別為rsa,-C用來指定註釋,“xxx”是你的註釋內容,可以是郵箱也可以是其他。

回車後會提示你輸入一個密語字串(passphrase),空表示沒有密語,直接回車會提示確認再次輸入,直接回車即可在本地C盤->使用者->使用者名稱->.ssh目錄下已經生成一個id_rsa(金鑰)和一個id_rsa.pub(公鑰)檔案,把公鑰檔案裡面的內容全部複製,到github右上角設定裡,有一個settings,點選會看到一列選單,找到SSH and GPG keys,點選new SSH key按鈕,輸入名稱,將複製的公鑰內容貼上進去儲存即可。

3 在git bush 配置使用者資訊

分別輸入以下五個命令,和github賬號建立聯絡:

git config --global user.name xxx 其中xxx為你自己設定的ssh登入使用者名稱,可以自己起一個

git config --global user.email yyy 其中yyy為你的github登陸郵箱

git config --global push.default simple 不再顯示本資訊並從現在開始使用採用新的使用習慣

git config --global core.quotepath false 防止檔名變成數字

git config --global core.editor "vim" 使用vim編輯器提交資訊

以上命令都輸入完畢後檢測一下是否配置成功

輸入 ssh -T git@github.com,回車後出現以下提示說明設定成功

如何在本地克隆遠端github倉庫

4 克隆遠端倉庫

獲得遠端倉庫內容有兩個方法,一使用git init,二 使用git clone

首先在本地找一個地方新建一個資料夾,當然也可以不建,但是為了方便整理檢視,我個人感覺如果第一次使用還是新建比較好。在資料夾內右鍵選擇git bush here,代表這以後發生的操作都將在這個資料夾內執行。

git init:在git bash中輸入指令git init,該指令將會在本地建立一個名為.git的子目錄,這個目錄裡包含所有的必須檔案。此時只是初始化了倉庫,但是裡面的檔案還都沒有被跟蹤,新建一個檔案使用git status指令檢視本地新改動檔案,會發現出現很多檔名顯示未跟蹤,包含你新建的檔案。

git add :git add 指令用於將指定檔案新增到暫存區,待提交,有兩種用法:git add 檔名,新增某一個檔案;git add .,新增所有發生改動的檔案。

git commit:該指令用於將暫存區檔案提交到本地倉庫,也有兩種用法:git commit -m "這裡填備註便於查詢",代表將已經新增到暫存區的檔案提交到本地版本庫中;git commit -am "備註",代表將本地已經新增的改動,以及還沒有來得及新增到暫存區的改動一起提交到本地版本庫。

完成以上命令後新增遠端倉庫:命令:git remote add origin  git@github.com:xxx/yyy.git 其中xxx為你的github使用者名稱,yyy為你建立的倉庫名,如果發現提示克隆失敗,那可能是協議不支援,不妨試試把git@github中第一個git改為https://,然後本地倉庫也關聯遠端倉庫命令:git branch --set-upstream-to=origin/master master,代表在本地建一個名為master的分支對應遠端倉庫的master分支。

git pull:該指令用於拉取遠端分支最新內容併合併到本地分支,使用git pull origin master會發現提示有錯,此時本地新建分支和遠端分支還沒有關聯,改為"git pull origin master --allow unrelated-histories”強制允許合併,相當於此時真正關聯了本地和遠端分支。

git push :git push 命令用於將本地版本庫新改動推到遠端分支,用法:git push origin 分支名,目前只有一個分支一般為master主分支。

以上是使用git init獲取遠端倉庫並提交新內容的過程,如果是git clone,則如下:

git clone:git clone 可以直接將遠端分支克隆到本地,用法:git clone git@github.com:xxx/yyy.git 其中xxx為你的github使用者名稱,yyy為你建立的倉庫名,如果發現提示克隆失敗,那可能是協議不支援,不妨試試把git@github中第一個git改為https://,我本人就是使用git協議多次克隆不成功然後改為https://就好了,應該是分作業系統的。

然後git pull拉取遠端最新改動時會發現提示報錯,因為此時還沒有建立聯絡,改為git pull -u origin master,如果還報錯,使用git remote add origin git@github.com:xxx/yyy.git,然後使用git pull -u origin master即可,新增以及提交推送新改動同上。





      




相關文章