如何在 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 中已合并和未合并分支的状态。下面显示了命令和输出。从输出中可以清楚地看出,bugfix 和 feature 分支需要合并到 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 分支已合并。
广告