1. ホーム
  2. git

[解決済み] Gitで各ブランチとその最終リビジョンの日付を一覧表示する

2022-04-25 15:36:54

質問

リモートリポジトリから古いブランチやメンテナンスされていないブランチを削除する必要があります。最終更新日順にリモートブランチをリストアップする方法を探しているのですが、見つかりません。

この方法で簡単にリモートブランチをリストアップする方法はありますか?

どのように解決するのですか?

コマンドラインフ には、2つの興味深い命題があります。

for k in `git branch | perl -pe s/^..//`; do echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k -- | head -n 1`\\t$k; done | sort -r

または

for k in `git branch | sed s/^..//`; do echo -e `git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k --`\\t"$k";done | sort

これはローカルブランチのためのもので、Unixの構文で書かれています。使用方法 git branch -r 同様に、リモートブランチも表示できます。

for k in `git branch -r | perl -pe 's/^..(.*?)( ->.*)?$/\1/'`; do echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k -- | head -n 1`\\t$k; done | sort -r


マイケル・フォレスト 記載事項 コメントで のエスケープが必要であること。 sed という表現があります。

for k in git branch | perl -pe s\/\^\.\.\/\/; do echo -e git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k -- | head -n 1\\t$k; done | sort -r 

連続性 が追加されます。 コメント欄 :

zshrcに追加する場合は、以下のエスケープが必要です。

alias gbage='for k in `git branch -r | perl -pe '\''s/^..(.*?)( ->.*)?$/\1/'\''`; do echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k -- | head -n 1`\\t$k; done | sort -r'

複数行で。

alias gbage='for k in `git branch -r | \
  perl -pe '\''s/^..(.*?)( ->.*)?$/\1/'\''`; \
  do echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k -- | \
     head -n 1`\\t$k; done | sort -r'


n8tr 's 答え をベースにした git for-each-ref refs/heads の方がきれいです。 そして、より速く .

"もご覧ください。 の名前のみのオプションです。 git branch --list ? "

より一般的に トリプルイー を思い起こさせる コメントで :

  • モダンを好む $(command substitution) の構文は、時代遅れのバックチック構文よりも優れています。

(2014年にその点を"で図解しました。 とは何が違うのでしょうか? $(command)`command` シェルプログラミングで? ")。