如何在 Git 中檢視已合併和未合併的分支?


當我們在 Git 倉庫中有多個分支時,我們需要將所有分支的更改合併到主要工作線,即 master 分支。因此,如果我們當前位於 master 分支,並且需要檢視哪些分支需要合併,我們可以使用以下命令。

$git branch --no-merged

我們還需要驗證哪些分支已經合併,以便我們可以刪除未使用的分支。

$git branch --merged

示例

讓我們建立一個示例來了解如何檢視已合併和未合併的分支。下圖顯示了三個分支:master、feature、bugfix。所有三個分支都從初始提交開始分叉。

我們將 feature 分支合併到 master,並將應用 --merged--no-merged 選項來識別已合併的分支和尚未合併的分支。

讓我們透過一個例子來理解這一點。

步驟 1 - 建立一個倉庫,新增初始提交併建立三個分支 master、feature、bugfix

$ git init
$ echo hello>hello1.txt
$ git add .
$ git commit -m 'initial commit'
$ git branch feature
$ git branch bugfix
$ git branch

輸出

輸出顯示已建立所有三個分支。*master 表示它是當前分支。

bugfix
feature
* master

步驟 2 - 我們將在每個分支中進行提交,以便所有分支都從初始提交分叉。

$echo second>>second.txt
$git add .
$git commit -m 'second.txt'
$git switch feature
$echo third>third.txt
$git add .
$git commit -m 'third'
$git switch bugfix
$echo four>four.txt
$git add .
$git commit -m 'four.txt'
$git switch master
$git log --oneline --graph --all

輸出

輸出顯示有 4 次提交,所有三個分支都已從初始提交分叉。

* f5c8a8f (bugfix) four.txt
| * 97520af (feature) third
|/
| * 075d9c2 (HEAD -> master) second.txt
|/
* dcd8e55 initial commit

步驟 3 - 使用選項 --merged--no-merged 檢查 master 中已合併和未合併分支的狀態。下面顯示了命令和輸出。從輸出中可以清楚地看出,bugfixfeature 分支需要合併到 master 分支。

$ git branch --merged
* master //output

$ git branch --no-merged
bugfix //output
feature

步驟 4 - 將 feature 分支合併到 master 分支,並檢查分支的已合併和未合併狀態。

$git merge feature
Merge made by the 'recursive' strategy. //output
third.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 third.txt

$ git branch --merged
feature //output
* master

$$ git branch --no-merged
bugfix //output

輸出顯示 bugfix 是唯一需要合併的分支,並且 feature 分支已合併。

更新於: 2021年4月30日

7K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.