git與sourcetree的那些事

張士超發表於2018-08-18

資料儲存結構

  • 先來了解下版本管理中的兩個概念,如下圖所示:

    image.png

       倉庫,可以理解為你的專案工程,即檔案專案的單位。分為本地倉庫、遠端倉庫和線上倉庫,其中本地倉庫就是你本地電腦上的專案檔案,遠端倉庫一般為github、Centos等雲端託管平臺,也可以是一臺伺服器,線上倉庫就是實際伺服器執行的專案。一般來說,為了安全起見,遠端倉庫和線上倉庫應該是不同的伺服器。
       分支,可以理解為你專案內部的moudle,即檔案的模組。如張三模組分支、李四模組分支。

  • 版本控制的資料流
        在我們的實際專案中、利用git分散式版本管理器來管理我們的專案,其資料流向如下圖所示:

    image.png

       如圖,整體流向分為三大塊:1為線上倉庫、2為遠端倉庫、3為本地倉庫。其中從下到上的資料儲存流程為:工作區分為兩個分支:master和zhibinm,當本地的工作區對該這兩個分支進行改變時,需要一個儲存操作,即C和D,叫做commit操作,然後這兩個分支可以進行合併操作,B即為merge操作;當本地倉庫需要提交儲存的檔案時,這時候需要push到遠端倉庫,當然遠端倉庫也可以通過pull操作到本地倉庫,遠端倉庫各分支之間也可以進行merge合併操作;最後是遠端倉庫部署到線上倉庫進行使用。

檔案傳輸中的公鑰和私鑰

  • git傳輸協議
       分為https(加密超文字傳輸協議)和ssl(安全外殼協議),ssl涉及到公鑰和私鑰。首先我們瞭解兩種加密演算法。
  • 對稱加密演算法

    image.png

       其特點是加密金鑰和解密金鑰一樣的。

  • 非對稱加密演算法
image.png

   其特點是,加密的金鑰和解密的金鑰不一樣。加密的稱為公鑰,解密的稱為私鑰。

  • 公鑰和私鑰的生成
       開啟cmd,輸入指令程式碼:ssh-keygen -t rsa -C “your email”或者ssh-keygen -t rsa,並按回車3下(為什麼按三下,是因為有提示你是否需要設定密碼,如果設定了每次使用Git都會用到密碼,一般都是直接不寫為空,直接回車就好了)。會在一個資料夾裡面生成一個私鑰 id_rsa和一個公鑰id_rsa.pub。這裡說明一下公鑰和私鑰是成對出現的。
  • 從遠端倉庫中獲取工程專案(以GitHub為例)
       這裡我們用git的一個客戶端SourceTree來獲取專案,其中SourceTree個版本的下載點選這裡,選擇好版本下載安裝就好啦!上傳專案見這篇博文
  1. 根據https得到專案
    步驟如下:

    image.png
image.png
  1. 根據ssl得到專案
       首先做相關設定,主要是配置公鑰(SourceTree本地的git私鑰要配好):
    image.png

       然後直接複製ssl的url進行pull即可。

    image.png

    最後附上相關視訊講解


相關文章