前端工具與環境基礎系列:程式碼管理工具(gitee)(三)

Bakst發表於2020-12-02

1、版本控制

版本控制(Revision control)是一種在開發的過程中用於管理我們對檔案、目錄或工程等內容的修改歷史,方便檢視更改歷史記錄,備份以便恢復以前的版本的軟體工程技術。

  • 實現跨區域多人協同開發
  • 追蹤和記載一個或者多個檔案的歷史記錄
  • 組織和保護你的原始碼和文件
  • 統計工作量
  • 並行開發、提高開發效率
  • 跟蹤記錄整個軟體的開發過程
  • 減輕開發人員的負擔,節省時間,同時降低人為錯誤

簡單說就是用於管理多人協同開發專案的技術。

沒有進行版本控制或者版本控制本身缺乏正確的流程管理,在軟體開發過程中將會引入很多問題,如軟體程式碼的一致性、軟體內容的冗餘、軟體過程的事物性、軟體開發過程中的併發性、軟體原始碼的安全性,以及軟體的整合等問題。

無論是工作還是學習,或者是自己做筆記,都經歷過這樣一個階段!我們就迫切需要一個版本控制工具!

2、常見的版本控制工具

我們學習的東西,一定是當下最流行的!

主流的版本控制器有如下這些:

  • Git
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Micorosoft Visual SourceSafe)
  • TFS(Team Foundation Server)
  • Visual Studio Online

版本控制產品非常的多(Perforce、Rational ClearCase、RCS(GNU Revision Control System)、Serena Dimention、SVK、BitKeeper、Monotone、Bazaar、Mercurial、SourceGear Vault),現在影響力最大且使用最廣泛的是Git與SVN

3、版本控制分類

4、svn與git對比

1、 svn

svn是一種集中式的版本控制系統,版本庫是集中存放在中央伺服器上的,而幹活的時候,用的都是自己的電腦,所以首先需要從中央伺服器哪裡得到最新的版本,然後幹活,幹完活後,需要把自己做完的活推送到中央伺服器。集中式版本控制系統必須有網際網路才能工作,如果在區域網還可以,頻寬夠大,速度夠快,如果在網際網路下,網速慢的話,就會很慢。

集中式管理方式在一定程度上看到其他開發人員在幹什麼,而管理員也可以很輕鬆的掌握每一個人的開發許可權。

缺點:容錯性差、伺服器單點故障

2、git

GIT是一個分散式的版本控制系統,那麼他就沒有中央伺服器,每一個人的電腦就是一個完整的版本庫,這樣,工作的時候就不需要聯網,因為版本都在自己的電腦上。既然每個人的電腦都有一個版本庫,那麼多人如何協作呢?比如自己修改了A檔案,別人也修改了A檔案,這時,你們兩個只需要把各自的修改推給對方,就可以互相看到對方修改的了

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-IakNYfV4-1606912919996)()]

3、git工作流程

1、從遠端倉庫中克隆Git資源作為本地倉庫

2、從本地checkout程式碼後進行程式碼修改

3、在提交前先將程式碼提交至暫存區

4、提交修改,提交至本地倉庫,本地倉庫中儲存修改的各個歷史版本

5、修改完成後,需要與團隊成員共享程式碼,可以把程式碼oush到遠端倉庫

git工作流程圖

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-GL6SIIMR-1606912920009)()]

4、git安裝

5、使用git管理檔案版本

1、建立版本庫

  • Git GHI(圖形工具)
  • Git Bash (命令列工具)

6、git配置

檢視配置

git config -l   // 檢視所有配置
git config --global --list //檢視全域性配置  (使用者自己配置的)
//配置使用者名稱和郵箱(必須配置)
git config --global user.name '***'
git config --global user.email '***'


git config --system -list //檢視系統配置	(安裝的時候系統預設配置)

7、git操作

  • 建立全新的倉庫
//建立一個全新的倉庫
git init 
//克隆遠端倉庫
git clone + url
  • git的檔案操作

    • 未跟蹤狀態:還有一提交的暫存區
    • 跟蹤狀態:
      • 未修改:檔案內容與快照內容一致
      • 已修改:檔案內容與快照內容不一致
    • 暫存狀態:提交到暫存區的檔案
    //檢視狀態
    git status
    

5、遠端倉庫

5.1 新增遠端庫

5.1.1 、在github上建立倉庫

5.1.2 SSH協議

5.1.2.1 什麼是ssh?

SSH是(安全外殼協議)的縮寫,由IEIF的網路小組所制定。SSH是目前較可靠,專門為遠端登入會話賀其他網路服務提供安全性的協議。利用SSH協議可以有效的防止遠端管理過程中的資訊洩露

6.1.2.2 基於金鑰的安全驗證

使用ssh協議通訊時,推薦使用基於金鑰的驗證方式。你必須為自己建立一隊金鑰,並把公用金鑰放在需求訪問的伺服器上。如果你需要連結到SSH伺服器ss上,客戶端軟體就會向伺服器傳送請求,請求用你的金鑰進行安全驗證。伺服器收到請求後,先在該伺服器上你的主目錄下尋找你的公用金鑰,然後把他和你傳送過來的公用金鑰進行比較。如果兩個金鑰一致,伺服器就會用公用金鑰加密 ‘質詢’ 並把它傳送給客戶端軟體。客戶端軟體收到 ‘質詢’ 之後就可以使用你的私人金鑰解密再發她傳送給伺服器。

舉例:你使用git上傳程式碼到github,你的電腦建立一對金鑰(公鑰,私鑰),在建立GitHub倉庫的時候,會在設定中新增公鑰。上傳程式碼的時候,你的電腦會通過私鑰加密資料,然後上傳到GitHub伺服器,又應為你的伺服器上有你新增的公鑰,伺服器通過公鑰解密資料然後儲存到倉庫中。同理你從GitHub伺服器上拉去資料的時候,會對資料進行公鑰加密,然後傳輸到客戶端,客戶端通過私鑰解密資料,並存放到對應資料夾。(私鑰加密公鑰解密,公鑰加密私鑰解密)

5.1.2.3、ssh金鑰生成

//進入 c:\user\Administrator\.ssh目錄(有內容則說明已經有公鑰了,可以刪除從新生成,也是有直接使用)

//生成公鑰
ssh-keygen
ssh-keygen -t rsa//使用一些加密演算法

5.1.2.4、ssh金鑰配置

5.1.3、同步到遠端倉庫

將本地git倉庫的程式碼上傳到遠端倉庫

git push origin master

出現分支合併的報錯 使用

git pull --rebase origin master

6、分支管理

  • git分支常用命令

    //列出所有本地分支
    git branch
    //列出所有遠端分支
    git branch -r
    //新建分支,單但依然停留在當前分支
    git branch dev
    //建立新分支,並切換到該分支
    git checkout -b dev
    //切換分支
    git checkout dev
    //合併制定分支到當前分支
    git merge dev
    //刪除本地分支
    git branch -d dev
    //刪除遠端分支
    git push orgin --delete dev
    git branch -dr dev
    

上傳到gitee碼雲

方法一

適用於專案開始之前

1、gitee建立倉庫

2、在專案中克隆倉庫

git clone + ‘地址’

3、程式碼提交到介面

git add .

4、程式碼提交到本地倉庫

git commit -m ‘提示資訊’

5、將原生程式碼提交的遠端倉庫

git push + 地址

方法二

適用於專案完成或者完成一半

1、cd到你的專案目錄

2、建立一個本地倉庫

git init

3、將專案的所有檔案新增到快取中

git add .

4、將快取中的檔案Commit到git庫

git commit -m “新增此次更新的內容備註”

5、將本地的庫連結到遠端倉庫

git remote add origin + HTTPS連結

6、將本地git倉庫的程式碼上傳到遠端倉庫

git push origin master

7、出現分支合併的報錯 使用

git pull --rebase origin master

檢視commit記錄

git log git reflog

回退版本 git reset --hard ***(版本號)

git push -f 強制推送

相關文章