git-branch
dich nicht tun lassen, dass
Gibt es eine Möglichkeit, um Farbe Zweignamen in der Ausgabe von git branch
nach einigen regexp basierten Regeln ohne externe Skripte verwenden?
Nein; Git bietet Ihnen keine Möglichkeit, die Farben in der Ausgabe von git branch
basierend auf Mustern anzupassen, die den Zweignamen entsprechen.
schreiben benutzerdefinierten Skript
Das Beste, was ich mit so weit habe kommen ist git branch
über ein externes Skript auszuführen, und einen Alias zu erstellen.
Ein Ansatz ist in der Tat ein benutzerdefiniertes Skript zu schreiben. Beachten Sie jedoch, dass git branch
ein Porzellan-Git-Befehl ist und daher in Skripten nicht verwendet werden sollte. Bevorzugen Sie den Klempner Git Befehl git-for-each-ref
dafür.
Hier ist ein Beispiel für ein solches Skript; passen Sie es an Ihre Bedürfnisse an.
#!/bin/sh
# git-colorbranch.sh
if [ $# -ne 0 ]; then
printf "usage: git colorbranch\n\n"
exit 1
fi
# color definitions
color_master="\033[32m"
color_feature="\033[31m"
# ...
color_reset="\033[m"
# pattern definitions
pattern_feature="^feature-"
# ...
git for-each-ref --format='%(refname:short)' refs/heads | \
while read ref; do
# if $ref the current branch, mark it with an asterisk
if [ "$ref" = "$(git symbolic-ref --short HEAD)" ]; then
printf "* "
else
printf " "
fi
# master branch
if [ "$ref" = "master" ]; then
printf "$color_master$ref$color_reset\n"
# feature branches
elif printf "$ref" | grep --quiet "$pattern_feature"; then
printf "$color_feature$ref$color_reset\n"
# ... other cases ...
else
printf "$ref\n"
fi
done
einen Aliasnamen Machen Sie es aus
das Skript auf Ihrem Weg Setzen und
git config --global alias.colorbranch '!sh git-colorbranch.sh'
-Test
Hier laufen ist, was ich in einem Spielzeug-Repo (in GNU bash erhalten):
Blick auf [git Zweig] (http://stackoverflow.com/questions/31984968/color-git-branches-based-on-their-names) doc. Ich denke nicht, dass dies möglich ist – Vishwanath
Mit einem benutzerdefinierten Skript ist der Weg zu gehen, aber verwenden Sie 'git for-each-ref' (Sanitär) und nicht' git branch' (Porzellan). – Jubobs
'git for-each-ref' sieht cool aus, ich habe es noch nie zuvor benutzt. –