कमांडलाइनफू में 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
यह स्थानीय शाखाओं के लिए है, यूनिक्स सिंटैक्स में। का उपयोग करते हुए 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
माइकल फॉरेस्ट ने टिप्पणी में उल्लेख किया है कि zsh को 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
kontinuity टिप्पणियों में जोड़ता है :
यदि आप इसे अपने 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 का उत्तर , git for-each-ref refs/heads
क्लीनर पर आधारित है। और तेज ।
यह भी देखें " नाम केवल विकल्प के लिए git branch --list
? "
आमतौर पर, ट्रिपल हमें टिप्पणियों में याद दिलाता है :
- आधुनिक
$(command substitution)
बैकटेक्स सिंटैक्स पर आधुनिक सिंटैक्स को प्राथमिकता दें ।
(मैंने 2014 में "बिंदु और शेल प्रोग्रामिंग में क्या अंतर है?$(command)
`command`
"