如何判断github提交的分支是什么?

时间:2012-02-20 12:03:30

标签: git github

在github上,当我查看提交时,它会向我显示提交消息和更改,以及底部的任何注释。但是,它没有告诉我签入提交的分支。即使我'浏览代码',它正在浏览特定“树”的代码(可能是提交时的代码状态),而不是特定分支。

我知道git中的提交本质上并不与分支相关联,但是它们 肯定会首先被提交到特定的分支中?是不是用该分支标记了提交,我可以以某种方式查看它是哪个分支吗?

6 个答案:

答案 0 :(得分:11)

好的,从根本上说,这个问题的答案是:没有明确的方式来判断。 Mercurial实际上将提交标记为他们签入的分支的名称,但是git根本就没有;显然,分支的名称并不重要。这是一个设计决定,它似乎不会发生变化。

答案 1 :(得分:7)

如果您知道提交编号,则可以执行此操作

git branch --contains <commit>

这应该为您提供进行提交的分支名称。

更新: 特别是在GitHub上,您现在可以看到给定提交的分支是其中的一部分。 博客文章“提交页面的分支和标签标签”详细信息:

如果提交不在默认分支上,则指示符将显示包含提交的分支。 如果提交是未合并拉取请求的一部分,则会显示一个链接。

enter image description here

答案 2 :(得分:4)

来自git help branch

  

使用--contains,只显示包含命名提交的分支(换句话说,提示提交是指定提交的后代的分支)。

     

使用--merged,只会将分支合并到命名提交中(即可以从命名提交中访问提示提交的分支)。

     

使用--no-merged只列出未合并到命名提交的分支。如果缺少参数,则默认为HEAD(即当前分支的尖端)。

答案 3 :(得分:3)

如果这是一个相当近期的提交,您可以转到您的网络图(例如https://github.com/BenHocking/ShortCircuitGA/network)并将鼠标悬停在分支上的每个节点上,直到找到您要查找的提交。它效率不高,但这是我知道如何直接从GitHub进行操作的唯一方法。 (如果你有SourceTree,GitX或其他可视化Git客户端,可能还有其他替代方案,以及命令行替代方案。)

答案 4 :(得分:1)

开始提交提交的拉取请求。您将在“从”侧看到默认的源分支。

答案 5 :(得分:0)

这个答案对以前的签到没有帮助,但我使用以下commit-msg钩子脚本将当前分支附加到每个提交消息。

#!/bin/sh
#
export BRANCH=`git status | head -1 | cut -c13-`
echo -n "($BRANCH) - " > .git/tmp-msg
cat $1 >> .git/tmp-msg
mv .git/tmp-msg $1

exit 0