前面咱們介紹的全部操做都是在本地倉庫完成的,本文咱們主要來看看如何和遠程倉庫進行交互,爲了方便起見,這裏遠程倉庫咱們選擇GitHub。 git
本文是Git系列的第五篇,瞭解前面的文章有助於更好的理解本文:github
1.Git概述
2.Git基本操做
3.Git中的各類後悔藥
4.Git分支管理ssh
SSH KEY的配置不是必須的,不配置的話咱們就只能使用HTTPS協議,這樣每次提交時要輸入用戶名密碼,略麻煩,因此仍是配置一下。配置SSH KEY的原理很簡單,採用非對稱加密方式生成公鑰和私鑰,公鑰告訴GitHub,私鑰留在本身電腦上(私鑰不可泄露),當咱們向GitHub上提交數據時,GitHub會用咱們留給它的公鑰加密一段消息返回給咱們的電腦,若是咱們可以用私鑰解密成功,說明是合法的用戶,這樣就避免咱們輸入用戶名密碼了。大體的原理就是這樣,如今不少免登陸的系統都採用了這種方式,好比Hadoop免登陸配置也是這樣。那咱們就來看看這個SSH KEY要怎麼生成。 oop
查看當前用戶目錄下是否有.ssh文件,以下: 加密
若是查看以後有結果,則直接跳轉到第四步,什麼都沒有就繼續生成。spa
生成SSH指紋的命令很簡單,以下:code
ssh-keygen -t rsa -b 4096 -C "你的郵箱地址"
注意郵箱地址要替換。blog
執行以下命令便可:圖片
eval "$(ssh-agent -s)"
OK,作好這一切以後,咱們當前用戶目錄下已經有了一個名爲.ssh的隱藏文件夾了,打開這個目錄,會發現有一個名爲id_rsa.pub的文件,這就是咱們一會要使用的公鑰文件。rem
登陸GitHub,點擊右上角的向下的箭頭,選擇Settings,在新打開的頁面中左邊側欄選擇SSH and GPG keys,以下:
完了以後點擊最下面的Add SSH key按鈕便可,如此以後,咱們的SSH KEY就配置成功了。
接下來咱們在GitHub上建立一個倉庫,登陸成功以後,直接點擊右上角綠色的New repository按鈕,以下:
其實這裏咱們只須要填一個版本倉庫的名字,我填了test,填好以後,點擊Create repository就OK了。
建立成功以後,咱們會看到倉庫的地址,以下:git@github.com:lenve/test.git
,而後我須要將咱們以前的本地倉庫和這個遠程倉庫進行關聯,使用git remote add命令,以下:
$ git remote add origin git@github.com:lenve/test.git
在這條命令中,git會自動將遠程倉庫的名字設置爲origin,方便咱們的後續操做。
假設我想將本地master分支上的內容推送到遠程master分支上,方式以下:
$ git push -u origin master
-u參數能夠在推送的同時,將origin 倉庫的master 分支設置爲本地倉庫當前分支的upstream(上游)。添加了這個參數,未來運行git pull命令從遠程倉庫獲取內容時,本地倉庫的這個分支就能夠直接從origin 的master 分支獲取內容,省去了另外添加參數的麻煩。這個參數也只用在第一次push時加上,之後直接運行git push命令便可。
若是想推送到其餘分支,仍是這條命令,修改一下分支的名字便可,好比我也想把個人fa分支推送到遠程倉庫中,執行以下命令:
$ git checkout fa $ git push -u origin fa
先切換到fa分支,而後執行git push命令,參數含義和以前的同樣,這裏咱們建立的遠程倉庫的分支名也爲fa(固然咱們能夠取任何名字,可是爲了避免混淆,最好取一致的名字)。這兩條命令執行成功以後,此時在網頁中咱們就能夠看到已經有多個分支了,以下:
剛剛是咱們向遠程倉庫提交數據,有提交固然就有獲取,咱們能夠經過git clone命令克隆一個遠程倉庫到本地,方式也簡單,在本地建立一個空文件夾,執行以下命令:
$ git clone git@github.com:lenve/test.git
表示克隆文件到本地倉庫。此時克隆的遠程倉庫的master分支到本地倉庫,咱們能夠經過git branch -a來查看本地倉庫和遠程倉庫的信息,-a參數能夠同時顯示本地倉庫和遠程倉庫的信息,以下:
咱們看到遠程倉庫中已經有了fa分支了,若是咱們想把fa分支也克隆下來,執行以下命令:
$ git checkout -b fa origin/fa
表示根據遠程倉庫的fa分支建立一個本地倉庫的fa分支,建立完成以後進行切換,也能夠經過以下命令只建立不切換:
$ git branch fa origin/fa
此時我在fa分支下修改git01.txt文件並提交,以下:
注意因爲fa分支就是從遠程倉庫克隆下來的,因此這裏能夠不添加-u參數。
此時咱們回到第一次最先的那個test本地倉庫中,那個test倉庫的fa分支如今和遠程倉庫不一致了,咱們能夠經過git pull命令來更新,以下:
Ok,關聯遠程倉庫咱們先說這麼多。有問題歡迎留言討論。
參考資料:
1.《GitHub入門與實踐》
2.《Pro Git》
更多JavaEE和Git資料請關注公衆號: