Git:如何理解'git branch -a --merged master'列表?

Git: How to understand the 'git branch -a --merged master' listing?

在主分支上我执行了以下命令:

git fetch
git branch -a --merged master

我得到了以下清单:

$ git branch -a --merged master
  branch1
  branch2
* master
  remotes/origin/branch1
  remotes/origin/branch4
  remotes/origin/branch3

我可以从这个列表中了解到 branch1 已被合并并推送到远程 master 分支吗?

强调一下我感兴趣的重点:是不是也推送到master分支了?

作为上下文和提醒:

  • Git 中的提交是一个链表,每个提交都包含其父项的哈希值
  • 分支是特定提交的标签(在幕后,分支是一个文件,其名称为分支的名称,内容为它指向的提交的哈希值

命令 git branch -a --merged master 为您提供所有分支(本地和远程,来自 -a 选项,--all)可从 ("merged in") master(来自 --merged master 选项)。这意味着所有指向提交的分支都是 master 的祖先(parents/grand parents/...)。

术语 --merged 有点误导,因为它并不一定意味着分支已在 master 中合并(使用合并提交等)。

编辑: 根据您在评论中的问题:

I want to know if my local branches were already merged to remote master and pushed to remote repository.

你的分支是否合并到远程master:

git branch --merged origin/master # Here do your branches appear?

你的分支是否推送到远程仓库:

git branch -r # Here do your branches appear?
git branch -v # This will show your for each branch if they are ahead, behind or both. This works only if their upstream is set.

更多信息:man git-branch.