现在,当我输入“git branch”
时它以任意顺序列出我的分支。
我更喜欢的是,如果“git branch”将我的输出列在像fasion这样的树中,有点像:
master
|-- foo
|-- foo1
|-- foo2
|-- bar
|-- bar4
在这里,foo&酒吧是从主人分支; foo1& foo2从foo分支出来; bar4从酒吧分支。
这很容易实现吗?
仅限命令行实用程序。这需要适合我的zsh / vim工作流程。]
答案 0 :(得分:144)
我在2009年用“Unable to show a Git tree in terminal”提到了类似的方法:
git log --graph --pretty=oneline --abbrev-commit
但我一直在使用的完整版本是“How to display the tag name and branch name using git log --graph”(2011):
git config --global alias.lgb "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset%n' --abbrev-commit --date=relative --branches"
git lgb
原始答案(2010)
git show-branch --list
接近您正在寻找的内容(使用地形顺序)
--topo-order
默认情况下,分支及其提交按逆时间顺序显示 此选项使它们以拓扑顺序出现(即,后代提交显示在其父项之前)。
$ git wtf
Local branch: master
[ ] NOT in sync with remote (needs push)
- Add before-search hook, for shortcuts for custom search queries. [4430d1b] (edwardzyang@...; 7 days ago)
Remote branch: origin/master (git@gitorious.org:sup/mainline.git)
[x] in sync with local
Feature branches:
{ } origin/release-0.8.1 is NOT merged in (1 commit ahead)
- bump to 0.8.1 [dab43fb] (wmorgan-sup@...; 2 days ago)
[ ] labels-before-subj is NOT merged in (1 commit ahead)
- put labels before subject in thread index view [790b64d] (marka@...; 4 weeks ago)
{x} origin/enclosed-message-display-tweaks merged in
(x) experiment merged in (only locally)
NOTE: working directory contains modified files
git-wtf
告诉您:
- 如果您的分支是跟踪分支,您的分支如何与远程仓库相关。
- 如果分支是特征分支,则分支与非特征(“版本”)分支的关系如何。
- 如果您的分支是版本分支
,您的分支与功能分支的关系
答案 1 :(得分:125)
这不是你要求的,但是
git log --graph --simplify-by-decoration --pretty=format:'%d' --all
做得很好。它还显示标签和远程分支。这可能并不适合每个人,但我发现它很有用。 --simplifiy-by-decoration
是限制所显示的参考的重要技巧。
我使用类似的命令来查看我的日志。我已经能够用它完全取代gitk
用法:
git log --graph --oneline --decorate --all
我通过在〜/ .gitconfig文件中包含这些别名来使用它:
[alias]
l = log --graph --oneline --decorate
ll = log --graph --oneline --decorate --branches --tags
lll = log --graph --oneline --decorate --all
编辑:更新了建议的日志命令/别名,以使用更简单的选项标记。
答案 2 :(得分:10)
您可以使用名为gitk
的工具。
答案 3 :(得分:10)
以下示例也显示了提交父级:
git log --graph --all \
--format='%C(cyan dim) %p %Cred %h %C(white dim) %s %Cgreen(%cr)%C(cyan dim) <%an>%C(bold yellow)%d%Creset'
答案 4 :(得分:2)
在Ubuntu上测试:
sudo apt install git-extras
git-show-tree
这产生的效果类似于此处最受好评的2个答案。
来源:http://manpages.ubuntu.com/manpages/bionic/man1/git-show-tree.1.html
此外,如果您已安装 arcanist ,则arc flow
会显示一个漂亮的上游依赖项依赖关系树(即:先前是通过arc flow new_branch
或手动设置的)通过git branch --set-upstream-to=upstream_branch
)。
答案 5 :(得分:0)
对于使用Github的用户,他们有一个分支network viewer,看起来更容易阅读