小编典典

git 分支在树中的输出,如时尚

all

现在,当我输入“git branch”时

它以任意顺序列出我的分支。

如果“git branch”将我的输出列在像 fasion 这样的树中,我更愿意这样做:

master
|-- foo
  |-- foo1
  |-- foo2
|-- bar
  |-- bar4

在这里, foo & bar 是从 master 分支出来的;foo1 & foo2 是从 foo 分支出来的;bar4 是从 bar 分支出来的。

这很容易实现吗?

[仅限命令行实用程序。这需要适合我的 zsh/vim 工作流程。]


阅读 57

收藏
2022-06-25

共1个答案

小编典典

下面的答案使用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接近您正在寻找的东西(使用拓扑顺序)

--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向您展示:

  • 如果它是跟踪分支,您的分支与远程仓库的关系如何。
  • 如果它是功能分支,您的分支如何与非功能(“版本”)分支相关联。
  • 您的分支与功能分支的关系(如果它是版本分支)
2022-06-25