web-dev-qa-db-fra.com

Comment puis-je avoir un shell pour git comme dans Windows?

Lorsque j'utilise Windows, le shell (même un shell Windows standard) affiche des informations de base sur le référentiel git lorsque vous vous trouvez dans un référentiel git. Des choses comme la branche active et peut-être un code de couleur.

Y a-t-il un moyen d'avoir la même chose dans Ubuntu?

9
Nicola Peluchetti

Le shell Windows Git, qui n'est en réalité que bash, définit l'invite $PS1 sur une longue chaîne incluant $(__git_ps1).

__git_ps1 est défini comme une fonction, longue de près de 100 lignes, qui affiche le nom de la branche actuelle entre parenthèses.

/etc/profile (qui est C:\Program Files (x86)\Git\etc\profile, du moins sur mon système)) invoque /etc/git-completion.bash, qui définit la fonction __git_ps1, définit $PS1, définit des paramètres spécifiques à git. finitions, entre autres.

Le git-completion.bash utilisé par Git Bash semble être basé sur this .

4
Keith Thompson

Pour la couleur:

git config --global color.ui true
4
Justin Seiter
  • Comment empêcher bash de s'échapper des couleurs d'invite est un exemple. Vous pouvez le copier à partir de la réponse, puis utiliser gedit pour le coller au bas de votre fichier .bashrc dans votre répertoire personnel (faire une sauvegarde, d’abord, bien sûr).

  • Si le fichier .bashrc mentionné par Keith dans sa réponse fait partie de git, il sera concédé sous licence avec GPL2. Vous devriez donc pouvoir le coller dans votre fichier .bashrc également. Vous devrez également récupérer le fichier /etc/git-completion.bash, l’installer quelque part et le faire référencer par votre nouveau fichier .bashrc.

  • Voici quelque chose d'autre que vous pourriez coller et essayer d'Arturo Fernandez à l'adresse http://www.bsnux.com/recipes/how-display-you-current-git-branch-Prompt.html

 # Affichage de la branche git dans l'invite 
 Function parse_git_branch {
 Branche git --no-color 2>/dev/null | sed -e '/ ^ [^ *]/d' -e 's/*\(. * \)/(\ 1) /' 
} 
 
 fonction proml {
 local GREEN = "\ [\ 033 [0; 32m \]" 
 local WHITE = "\ [\ 033 [0; 37m \]" 
 
 PS1 = "[\ u @\h\w $ GREEN\$ (parse_git_branch)]] $ WHITE\$" 
 PS2 = '>' 
 PS4 = '+' 
 } 
 proml 
1
John S Gruber

Si vous utilisez zsh comme shell, vous trouverez peut-être utile mes fichiers de configuration . Essayez source Prompt/blocky pour voir à quoi ressemble l’invite dans un référentiel Git.

1
pconley