如何在 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+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告