现在,当我输入“git branch”时
它以任意顺序列出我的分支。
如果“git branch”将我的输出列在像 fasion 这样的树中,我更愿意这样做:
master |-- foo |-- foo1 |-- foo2 |-- bar |-- bar4
在这里, foo & bar 是从 master 分支出来的;foo1 & foo2 是从 foo 分支出来的;bar4 是从 bar 分支出来的。
这很容易实现吗?
[仅限命令行实用程序。这需要适合我的 zsh/vim 工作流程。]
下面的答案使用git log:
git log
我在 2009 年用“无法在终端中显示 Git 树”提到了类似的方法:
git log --graph --pretty=oneline --abbrev-commit
但我一直在使用的完整内容是“如何使用 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接近您正在寻找的东西(使用拓扑顺序)
git show-branch --list
--topo-order
默认情况下,分支及其提交按时间倒序显示。 此选项使它们以拓扑顺序出现(即,后代提交显示在其父级之前)。
但是工具git wtf也可以提供帮助。例子:
$ 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向您展示: 如果它是跟踪分支,您的分支与远程仓库的关系如何。 如果它是功能分支,您的分支如何与非功能(“版本”)分支相关联。 您的分支与功能分支的关系(如果它是版本分支)
git-wtf向您展示:
git-wtf