有没有一种方法可以在Git中只显示分支结构?有许多工具可以以图形方式显示提交历史记录,但在我的情况下,列表太长了,无法看清分支结构。我猜git-log可能是答案,但我找不到只显示分支提交的开关。"--graph --branches --oneline --all"与此结合可以解决问题。
编辑:我正在寻找在Ubuntu中实现此操作的方法。
编辑:我正在寻找在Ubuntu中实现此操作的方法。
我不确定你所说的“分支结构”具体指什么。
git log
可以帮助可视化通过提交创建的分支(参见此博客文章):
[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分支,你可以尝试类似于下面这样的操作:
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命令
,仅列出自上次origin/master
提交以来的提交记录)--simplify-by-decoration
,请参见他的答案。--simplify-by-decoration
选项来运行git-log。 - Jakub Narębski也许你想要的是--simplify-by-decoration
选项,参见git log文档:
--simplify-by-decoration
选择被某个分支或标签引用的提交。
因此命令应该是:
git log --graph --simplify-by-decoration --all
或者跟随VonC的回答
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
gitk --all
。gitk --all --simplify-by-decoration
,效果还不错。(这是使用git 1.7.9.5附带的gitk做的) - Rhubbarb基本解决方案是:
git log --graph --all
如果你想更加高级一些:
git log --graph --all --pretty=format:"%Cblue%h%Creset [%Cgreen%ar%Creset] %s%C(yellow)%d%Creset"
git wtf
。该脚本的网址为: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]