有没有办法只显示Git中的分支结构?有许多工具以图形方式显示提交,但在我的情况下,列表太长,以至于无法看到结构。我猜git-log可能是答案,但我找不到任何只显示分支提交的开关。这与“--graph --branches --oneline --all”一起可以解决问题。
编辑:我正在寻找一种在Ubuntu中实现此目的的方法。答案 0 :(得分:31)
我不确定你所说的“分支结构”是什么意思
git log
可以帮助可视化通过提交创建的分支(请参阅此blog post):
[alias]
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
但如果你只想要不同的HEAD分支,你可以尝试something along the lines of:
heads = !"git log origin/master.. --format='%Cred%h%Creset;%C(yellow)%an%Creset;%H;%Cblue%f%Creset' | git name-rev --stdin --always --name-only | column -t -s';'"
(使用column command
,此处仅用于自上次origin/master
提交以来的提交)
注意:Jakub Narębski建议添加选项 --simplify-by-decoration
,请参阅his answer。
答案 1 :(得分:27)
也许您想要的是--simplify-by-decoration
选项,请参阅git log文档:
- 简化逐装饰
选择某些分支或标记引用的提交。
所以它会是
git log --graph --simplify-by-decoration --all
或关注VonC answer
git log --graph --simplify-by-decoration \
--pretty=format:'%Cred%h%Creset-%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' \
--abbrev-commit --date=relative
答案 2 :(得分:9)
也许我错过了什么,但似乎没有人提到gitk --all
。
答案 3 :(得分:6)
基本解决方案是:
git log --graph --all
如果你想得到更多的幻想:
git log --graph --all --pretty=format:"%Cblue%h%Creset [%Cgreen%ar%Creset] %s%C(yellow)%d%Creset"
答案 4 :(得分:3)
答案 5 :(得分:1)
要获取有关特定分支如何与存储库和远程控制器中的其他分支相关的更多信息,您可以使用git wtf
这是William Morgan的添加脚本:http://git-wt-commit.rubyforge.org/
它产生如下的摘要信息:
$ git wtf
Local branch: master
[x] in sync with remote
Remote branch: origin/master (git@gitorious.org:willgit/mainline.git)
[x] in sync with local
Feature branches:
{ } origin/experimental is NOT merged in (1 commit ahead)
- some tweaks i'm playing around with [80e5da1]
{ } origin/dont-assume-origin is NOT merged in (1 commit ahead)
- guess primary remote repo from git config instead of assuming "origin" [23c96f1]
(取自上述网址的例子)。