Git學習系列 五 分支管理詳解

2021-08-27 16:55:54 字數 2554 閱讀 4042

分支管理在咱們實際工作中經常用到,因此掌握分支對於咱們從事移動開發並且使用到了git這樣的分布式版本管理工具來說是很有必要的。比如當你餓了的時候,甲幫你做飯,一幫你燒菜:

當然你也可以自己做飯燒菜。但是咱們仍然可以看到,我是從乙個餓的狀態變成了乙個飽的狀態,也就是我之前空腹,後來我由甲(分支)和乙(分支)兩人同時來幫我完成了完成了「做飯」和「燒菜」的功能,而我的狀態也從飢餓變成了吃飽的狀態(即飯和菜都提交到了我的肚子裡

分支在實際中有什麼用呢?假設你準備開發乙個新feature,但是需要10天才能完成,前5天你寫了50%的**,如果立刻提交,由於**還沒寫完,不完整的**庫會導致別人不能幹活了,但是如果等**全部寫完再一次提交,又存在丟失每天進度的巨大風險。有了分支,你建立了乙個你自己的分支,別人是看不到的,你還繼續在原來的分支上正常工作,直到開發完畢後,再一次性合併到原來的分支(俺餓了...)上,這樣,既安全,又不影響別人工作,而且git分支的建立和修改、刪除都是非常快的。

建立分支

使用git時的每一次提交,git都會把它們串成一條時間線,這條線就是一條分支。咱們之前一直在master分支上操作,它是一條主分支,並且它指向的是最新的提交,而咱們前面章節講的head其實指向的就是master,這樣就能確定當前分支,以及當前分支的提交點:每次咱們提交時,master就會向前移動一步。當咱們建立新的分支,例如git新建了乙個分支叫dms001,指向master相同的提交,再把head指向dms001,就表示當前分支在dms001上了。(這裡可能不好理解,不過你只要記住一點就行了:head指向的是當前分支,而剛建立的分支dms001指向的是提交)

下面咱們開始操作一下:

首先建立乙個dms001分支,然後切換到dms001分支上(即讓head指向該分支)

然後咱們可以通過git branch來檢視當前分支是不是在dms001上(當然也可以直接使用git checkout -b dms001來建立並切換至dms001分支):

可以看到星號指向了dms001,這裡暫且把星號(*)看成head指標,如果大家對指標不怎麼理解的話,可以看看我之前寫的一篇「談談我對指標的認識」。

建立好分支後,咱們再來對之前hellogit.txt檔案做做修改,先cat hellogit.txt看看裡面的內容:

在該檔案中再加一句:create a named dms001 branch.

通過git status咱們可以看到,hellogit.txt確實被修改了,而且該狀態位於工作區。

下面通過前兩章講的,將該檔案狀態變成暫存區狀態:

然後提交到咱們的本地倉庫:

最好咱們將分支切換回主分支master:

切換回master分支後,再看一下hellogit.txt檔案,剛才新增的那句「create a named dms001 branch.」不見了!因為那個提交是在發生在dms001分支上,而master分支此刻的提交點並沒有變:

合併分支:

合併分支命令很簡單,但請注意:合併分支一定要切換至主分支,並且要合併的分支必須commit了:

這時master就指向了dms001的提交了。

請注意:咱們實際工作時一般是沒有許可權merge的,但因為是學習,所以還是有必要了解一下的。

刪除分支:

好了,既然已經merge好了,那麼我們就可以放心的刪除分支dms001了。刪除命令如下:

好了,咱又只剩master分支了,可以看到無論是建立、合併還是刪除分支,速度都是非常迅速的,這也是git乙個非常重要的特點,而且工作中常用分支來完成咱們的工作。

小結

本章出現的一些概念和常用命令希望大家多花點時間消化和多多操作。

Git學習序列4 分支管理

分支是版本管理系統裡面乙個重要的概念,使得版本管理變得更加靈活.專案分支可以用來建立臨時的 分支,當我們編輯測試好之後再推送到主分支上,使得專案開發變得更可控.每個開發者可以通過建立自己的分支來方便整體專案的管理和專案成員之間的交流.而git相比於svn這種集中式版本管理系統,能夠迅速地進行分支的建...

git操作詳解(二) 分支管理

分支管理 一 建立分支 重新建立乙個倉庫git lvhuayan 2 1 手動新增乙個new01.py檔案,內容為print new01 2 使用 git add git commit m 第一次提交 進行提交 3 手動新增乙個new02.py檔案,內容為print new02 4 使用 git a...

Git系列6 分支 branch

很多時候我們需要給自己或者客戶用乙個穩定的版本庫,然後同時還在開發另外乙個公升級版.自然而然,我們會想到把這兩者分開處理,使用者使用穩定版,我們開發我們的開發版.不過 git 的做法卻不一樣,它把這兩者融合成了乙個檔案,使用不同的分支來管理.所以這一節我們來說說 git 中的 分支 branch.之...