J'ai visionné certaines des vidéos de la Team Treehouse et elles ont un terminal très agréable à regarder lorsqu'elles travaillent avec Git.
Par exemple, ils ont (quelque chose de similaire):
mike@treehouseMac: [/Work/test - feature-branch-name] $ git add .
mike@treehouseMac: [/Work/test - feature-branch-name] $ git commit -m "Some feature."
mike@treehouseMac: [/Work/test - feature-branch-name] $ git checkout master
mike@treehouseMac: [/Work/test - master] $ git status
Comment mon terminal peut-il me montrer des informations utiles sur la branche dans laquelle je me trouve, avec des couleurs pour distinguer les bits des données que je souhaite? Existe-t-il une sorte de plug-in que je n'ai pas encore trouvé?
J'utilise Mac OSX 10.8
Il ne s'agit pas d'un plugin. Il s'agit de tours rapides dans Shell.
Pour une installation cool dans bash, consultez le projet dotfiles
de ce gars:
https://github.com/mathiasbynens/dotfiles
Pour obtenir une invite de fantaisie, incluez le .bash_Prompt
dans votre ~/.bash_profile
ou ~/.bashrc
.
Pour obtenir exactement la même invite que dans votre question, modifiez la ligne export PS1
à la fin de .bash_Prompt
comme suit:
export PS1="\[${BOLD}${Magenta}\]\u\[$WHITE\]@\[$ORANGE\]\h\[$WHITE\]: [\[$GREEN\]\w\[$WHITE\]\$([[ -n \$(git branch 2> /dev/null) ]] && echo \" - \")\[$PURPLE\]\$(parse_git_branch)\[$WHITE\]] \$ \[$RESET\]"
J'ai fini par utiliser tous les fichiers .bash*
de ce référentiel il y a environ un mois et cela m'a été vraiment utile.
Pour Git, il y a des goodies supplémentaires dans .gitconfig
.
Et puisque vous êtes un utilisateur mac, il y a encore plus de goodies dans .osx
.
Moyen simple
Ouvrez ~/.bash_profile
dans votre éditeur favori et ajoutez le contenu suivant en bas.
Branche Git dans Prompt.
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w - \$(parse_git_branch)\[\033[00m\] $ "
Pour développer les bonnes réponses existantes, un moyen très simple d'obtenir un terminal superbe est d'utiliser le projet open source Dotfiles.
https://github.com/mathiasbynens/dotfiles
L'installation est extrêmement simple sous OSX et Linux. Exécutez la commande suivante dans Terminal.
git clone https://github.com/mathiasbynens/dotfiles.git && cd dotfiles && source bootstrap.sh
Cela va:
cd
dans le dossier.Mon invite comprend:
rsync
- style user@Host:pathname
pour copier-collerExemple: Pour ce faire, ajoutez ce qui suit à votre ~/.bashrc
:
#
# Set the Prompt #
#
# Select git info displayed, see /usr/lib/git-core/git-sh-Prompt for more
export GIT_PS1_SHOWDIRTYSTATE=1 # '*'=unstaged, '+'=staged
export GIT_PS1_SHOWSTASHSTATE=1 # '$'=stashed
export GIT_PS1_SHOWUNTRACKEDFILES=1 # '%'=untracked
export GIT_PS1_SHOWUPSTREAM="verbose" # 'u='=no difference, 'u+1'=ahead by 1 commit
export GIT_PS1_STATESEPARATOR='' # No space between branch and index status
export GIT_PS1_DESCRIBE_STYLE="describe" # detached HEAD style:
# contains relative to newer annotated tag (v1.6.3.2~35)
# branch relative to newer tag or branch (master~4)
# describe relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
# default exactly eatching tag
# Check if we support colours
__colour_enabled() {
local -i colors=$(tput colors 2>/dev/null)
[[ $? -eq 0 ]] && [[ $colors -gt 2 ]]
}
unset __colourise_Prompt && __colour_enabled && __colourise_Prompt=1
__set_bash_Prompt()
{
local exit="$?" # Save the exit status of the last command
# PS1 is made from $PreGitPS1 + <git-status> + $PostGitPS1
local PreGitPS1="${debian_chroot:+($debian_chroot)}"
local PostGitPS1=""
if [[ $__colourise_Prompt ]]; then
export GIT_PS1_SHOWCOLORHINTS=1
# Wrap the colour codes between \[ and \], so that
# bash counts the correct number of characters for line wrapping:
local Red='\[\e[0;31m\]'; local BRed='\[\e[1;31m\]'
local Gre='\[\e[0;32m\]'; local BGre='\[\e[1;32m\]'
local Yel='\[\e[0;33m\]'; local BYel='\[\e[1;33m\]'
local Blu='\[\e[0;34m\]'; local BBlu='\[\e[1;34m\]'
local Mag='\[\e[0;35m\]'; local BMag='\[\e[1;35m\]'
local Cya='\[\e[0;36m\]'; local BCya='\[\e[1;36m\]'
local Whi='\[\e[0;37m\]'; local BWhi='\[\e[1;37m\]'
local None='\[\e[0m\]' # Return to default colour
# No username and bright colour if root
if [[ ${EUID} == 0 ]]; then
PreGitPS1+="$BRed\h "
else
PreGitPS1+="$Red\u@\h$None:"
fi
PreGitPS1+="$Blu\w$None"
else # No colour
# Sets Prompt like: ravi@boxy:~/prj/sample_app
unset GIT_PS1_SHOWCOLORHINTS
PreGitPS1="${debian_chroot:+($debian_chroot)}\u@\h:\w"
fi
# Now build the part after git's status
# Highlight non-standard exit codes
if [[ $exit != 0 ]]; then
PostGitPS1="$Red[$exit]"
fi
# Change colour of Prompt if root
if [[ ${EUID} == 0 ]]; then
PostGitPS1+="$BRed"'\$ '"$None"
else
PostGitPS1+="$Mag"'\$ '"$None"
fi
# Set PS1 from $PreGitPS1 + <git-status> + $PostGitPS1
__git_ps1 "$PreGitPS1" "$PostGitPS1" '(%s)'
# echo '$PS1='"$PS1" # debug
# defaut Linux Mint 17.2 user Prompt:
# PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w\[\033[00m\] $(__git_ps1 "(%s)") \$ '
}
# This tells bash to reinterpret PS1 after every command, which we
# need because __git_ps1 will return different text and colors
Prompt_COMMAND=__set_bash_Prompt
Le paquet git installé sur votre système inclut des fichiers bash pour vous aider à créer une invite informative. Pour créer des couleurs, vous devez insérer des séquences d'échappement terminaux dans votre invite. Enfin, l'ingrédient final consiste à mettre à jour votre invite après l'exécution de chaque commande à l'aide de la variable intégrée Prompt_COMMAND.
Modifiez votre ~/.bashrc pour inclure les éléments suivants, et vous devriez obtenir l’invite dans votre question, modulo quelques différences de couleur.
#
# Git provides a bash file to create an informative Prompt. This is its standard
# location on Linux. On Mac, you should be able to find it under your Git
# installation. If you are unable to find the file, I have a copy of it on my GitHub.
#
# https://github.com/chadversary/home/blob/42cf697ba69d4d474ca74297cdf94186430f1384/.config/kiwi-profile/40-git-Prompt.sh
#
source /usr/share/git/completion/git-Prompt.sh
#
# Next, we need to define some terminal escape sequences for colors. For a fuller
# list of colors, and an example how to use them, see my bash color file on my GitHub
# and my coniguration for colored man pages.
#
# https://github.com/chadversary/home/blob/42cf697ba69d4d474ca74297cdf94186430f1384/.config/kiwi-profile/10-colors.sh
# https://github.com/chadversary/home/blob/42cf697ba69d4d474ca74297cdf94186430f1384/.config/kiwi-profile/40-less.sh
#
color_start='\e['
color_end='m'
color_reset='\e[0m'
color_bg_blue='44'
#
# To get a fancy git Prompt, it's not sufficient to set PS1. Instead, we set Prompt_COMMAND,
# a built in Bash variable that gets evaluated before each render of the Prompt.
#
export Prompt_COMMAND="PS1=\"\${color_start}\${color_bg_blue}\${color_end}\u@\h [\w\$(__git_ps1 \" - %s\")]\${color_reset}\n\$ \""
#
# If you find that the working directory that appears in the Prompt is ofter too long,
# then trim it.
#
export Prompt_DIRTRIM=3
Il y a beaucoup de générateurs PS1 mais ezprompt a aussi le statut git (2ème onglet 'Status Elements').
Sur la base de la réponse de 6LYTH3, j'ai décidé d'afficher la mienne en raison d'améliorations qui pourraient s'avérer utiles:
Solution simple
Ouvrez ~/.bash_profile
et ajoutez le contenu suivant
# \[\e[0m\] resets the color to default color
reset_color='\[\e[0m\]'
# \[\033[33m\] sets the color to yellow
path_color='\[\033[33m\]'
# \e[0;32m\ sets the color to green
git_clean_color='\[\e[0;32m\]'
# \e[0;31m\ sets the color to red
git_dirty_color='\[\e[0;31m\]'
# determines if the git branch you are on is clean or dirty
git_Prompt ()
{
# Is this a git directory?
if ! git rev-parse --git-dir > /dev/null 2>&1; then
return 0
fi
# Grab working branch name
git_branch=$(git branch 2>/dev/null| sed -n '/^\*/s/^\* //p')
# Clean or dirty branch
if git diff --quiet 2>/dev/null >&2; then
git_color="${git_clean_color}"
else
git_color="${git_dirty_color}"
fi
echo " [$git_color$git_branch${reset_color}]"
}
export PS1="${path_color}\w\[\e[0m\]$(git_Prompt)\n"
Ceci devrait:
1) Prompt the path you're in, in color: path_color.
2) Tell you which branch are you.
3) Color the name of the branch based on the status of the branch with git_clean_color
for a clean work directory and git_dirty_color for a dirty one.
4) The brackets should stay in the default color you established in your computer.
5) Puts the Prompt in the next line for readability.
Vous pouvez personnaliser les couleurs avec cette liste _
Solution sophistiquée
Une autre option consiste à utiliser Git Bash Prompt, à l’installer avec this . J'ai utilisé l'option via Homebrew sur Mac OS X.
git_Prompt_list_themes
pour voir les thèmes mais je n’ai aimé aucun d’eux.
git_Prompt_color_samples
pour voir les couleurs disponibles.
git_Prompt_make_custom_theme [<Name of base theme>]
pour créer un nouveau thème personnalisé, cela devrait créer un fichier .git-Prompt-colors.sh.
subl ~/.git-Prompt-colors.sh
pour ouvrir git-Prompt-colors.sh et personnaliser:
Le fichier .git-Prompt-colors.sh devrait ressembler à ceci avec ma personnalisation
override_git_Prompt_colors() {
GIT_Prompt_THEME_NAME="Custom"
# Clean or dirty branch
if git diff --quiet 2>/dev/null >&2; then
GIT_Prompt_BRANCH="${Green}"
else
GIT_Prompt_BRANCH="${Red}"
fi
}
reload_git_Prompt_colors "Custom"
J'espère que cela vous aide, passez une bonne journée!
Installez simplement les plugins oh-my-zsh
comme décrit dans ce lien .
Cela fonctionne mieux sur macOS et Linux.
Installation basique
Oh My Zsh est installé en exécutant l'une des commandes suivantes sur votre terminal. Vous pouvez l'installer via la ligne de commande avec curl
ou wget
.
via curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
via wget
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"