如何从git的任何分支中获取分支列表?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从git的任何分支中获取分支列表?相关的知识,希望对你有一定的参考价值。

如何从git的任何分支中获取分支列表?

另外git中的fetch和pull命令有什么区别?

答案
git fetch
git checkout <branch of interest>
git log --children <commit>

将打印一个给定的后代提交列表,部分回答您的问题。

pull确实获取并尝试合并

fetch不合并

另一答案

如何从git的任何分支中获取分支列表?

根据你在这里所说的“新兴”(并假设你的意思是“给定分支”而不是“任何分支”),它将是git branch --contains <branch>git branch --merged <branch>

Fro git-branch manpage

SYNOPSIS
git branch [--color | --no-color] [-r | -a]
      [-v [--abbrev=<length> | --no-abbrev]]
      [(--merged | --no-merged | --contains) [<commit>]]
DESCRIPTION

使用--contains,只显示包含命名提交的分支(换句话说,提示提交是指定提交的后代的分支)。使用--merged时,只会将分支合并到命名提交中(即,可以从命名提交访问提示提交的分支)。使用--no-merged时,仅列出未合并到命名提交的分支。如果参数缺失,则默认为HEAD(即当前分支的尖端)。

另一答案

第二个问题更容易。 fetch只是从远程存储库(通常是源)更新当前存储库的远程货架分支,pull执行提取,然后将远程分支合并到当前检出的分支中。获取和合并的确切分支可能取决于配置,但git尝试“做正确的事”并在大多数常见设置中成功。

第一个问题有点棘手,因为任何存储库中的任何点都可以在任何给定分支的历史记录中的任何提交中创建新分支。在许多存储库中,大多数“正常”分支都是以某种方式相互分支的。

您可以做的是查看所有分支qazxsw poi,qazxsw poi或qazxsw poi以获得更易编写脚本的版本,并查看分支如何与对称差异相关联。

git branch

这将显示两个分支之间不常见的提交,在它们前面加上git branch -agit show-ref --heads以显示它们所在的分支。

另一答案

有点像@CB Bailey的游戏,但简化了。我使用以下命令来显示包含提交的所有分支。

git log --oneline --left-right branch-a...branch-b

以上是关于如何从git的任何分支中获取分支列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jenkins 中部署,根据参数选择从特定的 git 分支获取源代码

如何以透明的方式从另一个 git 分支获取目录的副本?

在 Jenkins Pipeline/Jenkinsfile 中获取 git 分支名称

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

git:如何从远程分支获取并合并到本地分支?