一文帶你讀懂什麼是Git版本管理

2022-02-21 19:00:49
本篇文章中給大家帶來了關於版本管理的相關知識,版本管理工具能夠紀錄每次的修改,只要提交到版本倉庫,就可以找到之前任何時刻的狀態,希望對大家有幫助。

Git是一個「分散式版本管理工具」。
版本管理工具能夠紀錄每次的修改,只要提交到版本倉庫,就可以找到之前任何時刻的狀態。
我們在寫東西的時候都用過撤消這個功能,但是撤消只能回撤有限步,通常關閉編輯軟體後再重新開啟,此時的復原紀錄都已被清空了。而「版本管理工具」則不同,它能記錄每次的修改,只要提交到版本倉庫,就可以找到之前任何時刻的狀態。

建立倉庫

安裝git軟體後,在任意目錄下建立一個新資料夾,開啟,然後執行git init來建立新的git倉庫(該命令將建立一個名為.git的隱藏子目錄)。

檢出倉庫

執行命令git clone + 遠端專案地址,用來克隆遠端伺服器上的倉庫。

Git狀態

Git有三種狀態,分別是已提交(committed)、已修改(modified)、已暫存(staged)。

  • 已修改(modified):已修改表示修改了檔案,但還沒儲存到資料庫中。
  • 已暫存(staged):表示對一個已修改檔案的當前版本做了標記,使之包含在下次提交的快照中。
  • 已提交(committed):資料已經安全的儲存在本地資料庫中。

Git的三種狀態分別對應本地倉庫的三個工作流,本低倉庫是由git維護的三棵樹組成。

  • 第一個是工作目錄,持有實際檔案,增刪檔案和內容;
  • 第二個是暫存區(Index),像個快取區域,臨時儲存改動。輸入git add+filename,此次改動就放到了暫存區。
  • 第三個是HEAD,指向最後一次提交的結果。輸入git commit命令,此次改動就放到了本地倉庫。commit之後的可以稱為一個版本。
    Git工作流

git基本工作流程:

  • 提出更改(新增到暫存區)
    使用命令git add (針對特定檔案)或git add *(針對所有檔案)可以提出更改(把它們新增到暫存區)。
  • 提交改動
    使用命令git commit -m 「程式碼提交資訊」 來實際提交改動,執行完後改動就提交到了HEAD,但是還沒到遠端倉庫。
  • 推播改動
    使用命令git push origin master 將改動提交到遠端倉庫master分支(通常不會直接提交到master分支,而是推播到自己的分支,核對無誤後再進行merge)。

分支

前面提到了master分支,那麼如何直觀的瞭解分支呢?

分支是用來將特性開發絕緣開來的。在建立倉庫的時候,master是「預設」分支。在其他分支上進行開發,完成後再將它們合併到主分支上。
在這裡插入圖片描述

git branch test1建立一個名字為test1的分支。
git checkout test1切換當前分支到test1
git checkout -b test1建立一個叫做「test1」的分支,並切換過去。
git checkout master切換回主分支。
git branch -d test1把新建的分支刪掉。
git push origin將分支推播到遠端倉庫。
git merge test合併分支。

更新與合併

使用命令git pull 「遠端分支名」 從遠端獲取程式碼併合併到本低的版本(在工作目錄中獲取(fetch)併合並(merge)遠端的改動)
使用命令git merge 「分支名」 把合併其他分支到當前分支。

前面的兩種情況,git都會嘗試去自動合併改動。但合併可能會出現衝突(conflicts),需要手動修改檔案來合併這些衝突。改動後執行git add 將它們標記為合併成功。在合併改動之前,可以使用git diff <source_branch> <target_branch>來觀察是否存在差異。

替換本地改動

如果操作失誤,可以使用命令git checkout – 替換掉本地改動。該命令會使用 HEAD中的最新內容替換掉工作目錄中的檔案(已新增到暫存區的改動以及新檔案都不會受到影響)

遠端倉庫的移除和重新命名

將test重新命名為test1:git remote rename test test1
移除遠端倉庫test1: git remote rm test1

復原操作

取消暫存的檔案:git reset filename
復原對檔案的修改:git checkout –filename

歷史紀錄

使用git log可以得到本地倉庫的歷史記錄。
使用命令git log --author=bob來只看某個人的提交記錄。新增一些引數來修改輸出,從而得到自己想要的結果。
檢視哪些檔案改變了: git log --name-status

推薦學習:《》

以上就是一文帶你讀懂什麼是Git版本管理的詳細內容,更多請關注TW511.COM其它相關文章!