本節(jié)涉及Git命令
-
git branch
:列出全部分支 -
git branch <name>
:創(chuàng)建分支 -
git checkout <name>
:切換分支 -
git diff <branch1> <branch2>
:對比兩個分支 -
git diff --quiet <branch1> <branch2>
:對比兩個分支是否存在差異,但不顯示細節(jié) -
git diff <branch1> <branch2> <filename>
:對比兩個分支中某個具體文件差異 -
git merge
:合并分支 -
git branch -d <name>
:刪除分支
一:分支管理概述
分支的存在,極大的強化了不同開發(fā)者的協(xié)作管理,在一個功能的開發(fā)過程中,可以在一個單獨的分支上完成,這樣不影響主分支的開發(fā),待功能完成后再將分支的內容合并到主分支
使用git branch
命令可列出所有已經存在的分支,其中標有*
表示這是當前工作分支,默認狀態(tài)下只有一條主分支master
每次提交到分支,Git都會把它們傳成一條時間線,這條時間線就是一個分支。master
或其它分支名本質是一個指針,它們指向的是該分支上最新的提交,然后我們會用前面所介紹的HEAD
指針指向master
或其它分支名
如上圖,在我們之前的工作中,一直都在master
分支上進行,因此每次提交,master
分支都會向前移動一步。當我們創(chuàng)建一個新的分支時,假如名字叫做dev
,Git就會新建一個指針dev
,指向master
上相同的提交,當我們切換分支時,再把HEAD
指向dev
即可
從現(xiàn)在開始,對工作區(qū)的修改和提交就都是針對dev
分支了。例如新提交一次后,dev
指針向前移動一步,而master
指針不變
假如我們在dev
上的工作完成了,就可以把dev
合并到master
上,直接讓master
指向dev
即可
合并完成后,也可以刪除dev
分支
二:相關基本操作
(1)查看分支
作用:使用git branch
命令可以查看目前存在的分支,其中當前所在的分支會用*
標記
例子:
如下,可以發(fā)現(xiàn),目前僅僅存在mater
這一條分支
- 從項目創(chuàng)建之初,有且唯一的分支就是主分支,主分支被叫做
master
。git 的master
分支并不是一個特殊分支,它就跟其它分支完全沒有區(qū)別。之所以幾乎每一個倉庫都有master
分支,是因為git init
命令默認創(chuàng)建
(2)創(chuàng)建分支
作用:使用git branch <name>
可以創(chuàng)建一條名為<name>
的分支。在一般項目開發(fā)中,會創(chuàng)建以下幾種類型的分支
-
主分支(
master
):主分支是代碼庫的主要分支,通常用于發(fā)布穩(wěn)定版本的代碼。開發(fā)人員在主分支上提交的代碼需要經過嚴格的測試和審核,確保代碼的質量和穩(wěn)定性。 -
開發(fā)分支(
develop
):開發(fā)分支是用于日常開發(fā)的分支,通常從主分支分離出來。在開發(fā)分支上進行的所有工作都會集成到該分支上,直到該分支的功能完成并準備好發(fā)布穩(wěn)定版本。 -
功能分支(
feature
):功能分支是從開發(fā)分支分離出來的分支,用于開發(fā)特定的功能。在功能分支上進行的所有工作都與該功能相關,開發(fā)人員可以在該分支上獨立開發(fā),并在功能完成后將該分支合并到開發(fā)分支上。 -
補丁分支(
hotfix
):補丁分支是用于修復已發(fā)布版本中出現(xiàn)的問題的分支,通常從主分支上分離出來。在補丁分支上進行的所有工作都是針對該版本的修復工作,修復完成后,將該分支合并回主分支和開發(fā)分支上。 -
發(fā)布分支(
release
):發(fā)布分支是用于準備發(fā)布版本的分支,通常從開發(fā)分支分離出來。在發(fā)布分支上進行的工作包括準備發(fā)布版本所需的文檔、測試、打標簽等,一旦發(fā)布完成,該分支會被合并到主分支和開發(fā)分支上
例子:
如下創(chuàng)建兩條分支,分別用于開發(fā)和bug修復,名稱分別為dev
和bugfix
(3)切換分支
作用:使用git checkout <name>
可進行分支之間的切換
例子:
如下,我們將目前所在分支切換到dev
上
現(xiàn)在,在該分支上建立一個文件BranchTest.txt
,在寫入一些內容后提交
然后我們再次切換回主分支,你會發(fā)現(xiàn)剛才生成的BranchTest.txt
不存在了
(4)分支對比
作用:使用git diff
命令對兩個分支進行差異對比,常用用法如下
git diff <branch1> <branch2> # 對比兩個分支
git diff --quiet <branch1> <branch2> # 對比兩個分支是否存在差異,但不顯示細節(jié)
git diff <branch1> <branch2> <filename> # 對比兩個分支中某個具體文件差異
例子:
如下
(5)合并分支
A:合并分支
作用:使用git merge
可以將兩個分支進行合并
例子:
如下,目前我們在master
分支上,現(xiàn)在我們將dev
分支上所做的更改合并至master
分支
B:沖突合并
當Git嘗試將兩個分支合并時,如果兩個分支都對同一個文件的相同部分進行了修改,就會發(fā)生沖突。在這種情況下,Git無法確定哪個更改是正確的,因此需要手動解決沖突
- 將兩個分支的文件,進行對比修改,滿足兩個分支的提交
- 使用
git add
和git commit
進行一次新的提交。(此時提交的是master
分支) - 再次合并
例子:
如下,切換回dev
分支,這次我們對Hello.py
文件進行修改
然后切換回master
分支也對Hello.py
文件進行修改,插入與之不同的內容
現(xiàn)在嘗試合并,可以發(fā)現(xiàn)Git報錯
其含義是需要我們手動處理沖突,使用git diff
也可以查看到兩個分支上文件的差異
現(xiàn)在,我們將master
分支上的這個Hello.py
文件最后一行刪除
再次合并即可
(6)刪除分支
**作用:使用git branch -d <name>
**可將分支刪除文章來源:http://www.zghlxwxcb.cn/news/detail-401308.html
例子:文章來源地址http://www.zghlxwxcb.cn/news/detail-401308.html
到了這里,關于第三節(jié):Git分支管理(關鍵詞:git branch、git checkout、git diff、git merge、查看、創(chuàng)建、切換、對比分支)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!