如果我git log
,是否有任何参数我可以指定从输出中告诉每个提交属于哪个分支?
编辑:澄清一下,我知道提交可能是两个分支的一部分(例如)。我想要的是获取log
中的提交所属的最新分支。所以,如果我从foo
创建一个名为master
的分支。它将属于两个分支,但我想获得foo
。
答案 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显示的图形类似的图形,除了分支中最近的提交之外,分支名称“装饰”。