1. ホーム
  2. git

[解決済み】gitブランチの出力をツリー状にする

2022-04-13 19:18:13

質問

今、"git branch"と入力すると、quot;git branchが表示されます。

は、私のブランチを任意の順序でリストアップします。

私が望むのは、"git branch" が私の出力をツリー状にリストアップしてくれればいいんですけどね。

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

ここで、fooとbarはmasterから、foo1とfoo2はfooから、bar4はbarからブランチされたものです。

これは簡単に実現できるのでしょうか?

[コマンドラインユーティリティのみ、zsh/vimのワークフローに適合する必要があります。]

解決方法は?

その 回答は以下の通りです。 用途 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 ([email protected]: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 が表示されます。

  • トラッキングブランチの場合、自分のブランチとリモートリポジトリの関連性。
  • 機能ブランチの場合、非機能ブランチ("version")との関連付け。
  • バージョンブランチの場合、そのブランチは機能ブランチとどのような関係にあるのですか?