如何知道“git log”提交属于哪个分支?

时间:2011-08-20 12:18:52

标签: git

如果我git log,是否有任何参数我可以指定从输出中告诉每个提交属于哪个分支?

编辑:澄清一下,我知道提交可能是两个分支的一部分(例如)。我想要的是获取log中的提交所属的最新分支。所以,如果我从foo创建一个名为master的分支。它将属于两个分支,但我想获得foo

3 个答案:

答案 0 :(得分:57)

我认为您正在寻找的是非常有用的命令:

git branch -a --contains <SHA1sum-of-commit>

...它将告诉您包含该提交的每个分支(本地和远程跟踪)。

不幸的是,我认为没有git log选项只为每次提交输出此选项。使用--all --source已关闭,但每次提交仅显示一个分支。但是,如果单击gitk --all中的提交,您将看到它列出了该提交所在的每个分支。

然而,你的问题的一部分定义不明确 - 你问:

  

我想要的是获取日志中的提交所属的最新分支

我不清楚你的意思是什么 - “最近的分支”可能是(a)最近创建的ref(b)最近修改的ref(c)最近提交的分支在提交图上,可能有更好的方法来定义你想要的东西。

答案 1 :(得分:22)

使用git log,您已经获得了当前分支的所有提交。

如果要查看合并分支的提交,可以使用

$ git log --pretty=oneline --graph

创建日志树并查看提交源自哪些合并分支。

--graph将生成提交树和 --pretty=oneline将为每次提交创建一行可视化

将分支(作为引用)添加到日志中:

$ git log --all --source --pretty=oneline --graph

使用提交显示分支:

$ git show-branch

答案 2 :(得分:8)

您是否尝试过“--decorate”选项来git log?

我的.gitconfig中有这个别名:

[alias]
        k = log --graph --oneline --abbrev-commit  --decorate

它显示了与gitk显示的图形类似的图形,除了分支中最近的提交之外,分支名称“装饰”。

相关问题