it-swarm.com.de

Hinzufügen eines Git-Zweigs an der Bash-Eingabeaufforderung

Ich habe versucht, den Git-Zweig, an dem ich gerade arbeite (ausgecheckt), an der Bash-Eingabeaufforderung hinzuzufügen, ohne Erfolg. ( während ich meinen aktuellen Pfad behalte, der die Active Directory/Datei intakt zeigt) Ich habe eine .bashrc-Datei Bei mir zu Hause, aber ich habe auch viele Leute gesehen, die die .profile-Datei erwähnt haben.

144
George Katsanos

Beachten Sie, dass diese Art von Eingabeaufforderung jetzt verwaltet wird von (altes 2014: contrib/completion/git-Prompt.sh ) neuestes master: master/contrib/completion/git-Prompt.sh und die Variable __git_ps1_branch_name.

  • Kopieren Sie diese Datei an einen beliebigen Ort (z. B. ~/.git-Prompt.sh).
  • Fügen Sie die folgende Zeile zu Ihrem .bashrc/.zshrc Hinzu:
  source ~/.git-Prompt.sh
  • Ändern Sie Ihren PS1, Um __git_ps1 Als Befehlsersetzung aufzurufen:
  Bash: 
  PS1='[\[email protected]\h \W$(__git_ps1 " (%s)")]\$ '
  ZSH:  
  setopt Prompt_SUBST ; PS1='[%[email protected]%m %c$(__git_ps1 " (%s)")]\$ '

Beachten Sie jedoch, dass Sie nur mit git 1.9.3 (Mai 2014) oder neuer sicher diesen Zweignamen (!) Anzeigen können.

Siehe commit 89765 von Richard Hansen (richardhansen) :

Sowohl bash als auch zsh unterziehen den Wert von PS1 einer Parametererweiterung , Befehlssubstitution und arithmetische Erweiterung.

Erstellen Sie PS1, Um auf eine Variable zu verweisen, die den Namen des Zweigs enthält, anstatt den unverarbeiteten, ungekapselten Zweigs in PS1 Einzuschließen, wenn Sie den Modus mit zwei oder drei Argumenten ausführen.

Da sich die Shells nicht rekursiv erweitern, wird die Ausführung von willkürlichem Code durch speziell gestaltete Zweignamen wie z

'$(IFS=_;cmd=Sudo_rm_-rf_/;$cmd)'.

Welcher hinterhältige Verstand würde einen Zweig so nennen? ;) ( Neben einer Mutter wie in xkcd )


still_dreaming_1 Berichte in den Kommentaren :

Dies scheint großartig zu funktionieren, wenn Sie eine Farbabfrage mit xterm wünschen (in meinem .bashrc):

PS1='\[\e]0;\[email protected]\h: \w\a\]\n${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\03‌​3[01;34m\]\w\[\033[00m\]$(__git_ps1)\$ ' 

Alles hat eine andere Farbe, einschließlich der Branche.

In Linux Mint 17.3 Cinnamon 64-Bit:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[01;34m\] \w\[\033[00m\]$(__git_ps1) \$ ' 
153
VonC

Führen Sie die folgenden Schritte aus: (Linux)

Bearbeiten Sie die Datei ~/.bashrc, um folgende Zeilen am Ende einzugeben (im Falle von Mac würde die Datei ~/.bash_profile sein)

# Git branch in Prompt.
parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\[email protected]\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "

Starten Sie nun das neue Terminalfenster und versuchen Sie, ein beliebiges git-repo einzugeben. Der aktuelle Zweig wird mit der Eingabeaufforderung angezeigt.

4 Weitere Informationen - MAC/Linux

48
parasrish

1- Wenn Sie nicht bash-completion ... haben: Sudo apt-get install bash-completion

2- Bearbeiten Sie Ihre .bashrc -Datei und prüfen (oder fügen Sie hinzu):

if [ -f /etc/bash_completion ]; then
  . /etc/bash_completion
fi

3- ... vor Ihrer Eingabeaufforderung: export PS1='$(__git_ps1) \w\$ '
(__git_ps1 zeigt Ihren Git-Zweig an)

4- do source .bashrc 

EDIT: 

Weitere Lesungen: Das Rad nicht neu erfinden

33
Eric Lavoie

So habe ich die Aufforderung zur Anzeige des Git-Status konfiguriert:

Git-Prompt-Skript abrufen:

curl -o ~/.git-Prompt.sh https://raw.githubusercontent.com/git/git/master/contrib/completion/git-Prompt.sh

Passen Sie Ihre Eingabeaufforderung an und fügen Sie den folgenden Code in Ihre .bashrc-Datei ein:

# Load Git functions
source ~/.git-Prompt.sh

# Syntactic sugar for ANSI escape sequences
txtblk='\e[0;30m' # Black - Regular
txtred='\e[0;31m' # Red
txtgrn='\e[0;32m' # Green
txtylw='\e[0;33m' # Yellow
txtblu='\e[0;34m' # Blue
txtpur='\e[0;35m' # Purple
txtcyn='\e[0;36m' # Cyan
txtwht='\e[0;37m' # White
bldblk='\e[1;30m' # Black - Bold
bldred='\e[1;31m' # Red
bldgrn='\e[1;32m' # Green
bldylw='\e[1;33m' # Yellow
bldblu='\e[1;34m' # Blue
bldpur='\e[1;35m' # Purple
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White
unkblk='\e[4;30m' # Black - Underline
undred='\e[4;31m' # Red
undgrn='\e[4;32m' # Green
undylw='\e[4;33m' # Yellow
undblu='\e[4;34m' # Blue
undpur='\e[4;35m' # Purple
undcyn='\e[4;36m' # Cyan
undwht='\e[4;37m' # White
bakblk='\e[40m'   # Black - Background
bakred='\e[41m'   # Red
badgrn='\e[42m'   # Green
bakylw='\e[43m'   # Yellow
bakblu='\e[44m'   # Blue
bakpur='\e[45m'   # Purple
bakcyn='\e[46m'   # Cyan
bakwht='\e[47m'   # White
txtrst='\e[0m'    # Text Reset

# Prompt variables
Prompt_BEFORE="$txtcyn\[email protected]\h $txtwht\w$txtrst"
Prompt_AFTER="\\n\\\$ "

# Prompt command
Prompt_COMMAND='__git_ps1 "$Prompt_BEFORE" "$Prompt_AFTER"'

# Git Prompt features (read ~/.git-Prompt.sh for reference)
export GIT_PS1_SHOWDIRTYSTATE="true"
export GIT_PS1_SHOWSTASHSTATE="true"
export GIT_PS1_SHOWUNTRACKEDFILES="true"
export GIT_PS1_SHOWUPSTREAM="auto"
export GIT_PS1_SHOWCOLORHINTS="true"

Wenn Sie mehr erfahren möchten, können Sie alle dotfiles hier herunterladen: https://github.com/jamming/dotfiles

20
jamming

Für Mac funktioniert das wirklich gut: http://martinfitzpatrick.name/article/add-git-branch-name-to-terminal-Prompt-mac/ :

# Git branch in Prompt.
parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

export PS1="\[email protected]\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
6
Mike Chen
vim ~/.bash

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

export PS1="\[email protected]\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $"

Um die neuesten Änderungen anzuzeigen, führen Sie den folgenden Befehl aus

source ~/.bashrc

Ausgabe:-

[email protected] ~/Chandrakant/CodeBase/LaravelApp (development) $
2

Öffnen Sie zunächst Ihr Bash-Profil in Ihrem Home-Verzeichnis. Der einfachste Weg, um Ihr bash_profile mit Ihrem Standardeditor zu öffnen und zu bearbeiten.

Zum Beispiel öffne ich es mit dem VS-Code mit dem folgenden Befehl: code .bash_profile.

Dann fügen Sie einfach die folgenden Codes in Ihre Bash ein.

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

export PS1="\[email protected]\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "

Die Funktion

parse_git_branch ()

ruft den Filialnamen ab und über PS1 kannst du ihn in deinem Terminal anzeigen.

Hier,

\ u = Benutzername

@ = Statischer Text

\ h = Computername

\ w = Aktuelles Verzeichnis

$ = Statischer Text

Sie können diese Variablen zur weiteren Anpassung ändern oder entfernen.


Wenn Sie Git zum ersten Mal im Terminal oder unmittelbar nach der Konfiguration verwenden, kann es vorkommen, dass der Filialname nicht angezeigt wird.

Wenn Sie dieses Problem bekommen, machen Sie sich keine Sorgen. In diesem Fall erstellen Sie einfach ein Beispielrepository und schreiben es nach einigen Änderungen fest. Wenn der Festschreibungsbefehl einmal ausgeführt wird, findet das Terminal ab dann den Git-Zweig.


 Screenshot: Git Branch in Terminal 

1
IFTEKHAR I ASIF

Befolgen Sie die nachstehenden Schritte, um den Namen des Zweigs Ihres GIT-Repos im Ubuntu-Terminal anzuzeigen:

step1: öffne das Terminal und bearbeite .bashrc mit dem folgenden Befehl.

vi .bashrc

step2: füge die folgende Zeile am Ende der .bashrc-Datei hinzu:

parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' }

export PS1="\[email protected]\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "

step3: source .bashrc im Hauptverzeichnis wie folgt vorgehen:

/ rootfolder: ~ $ source .bashrc

Schritt 4: Starten Sie das Terminal neu und öffnen Sie es. Navigieren Sie zu Ihrem GIt Repo-Verzeichnispfad, und Sie sind fertig. :)

0
BinDev
parse_git_branch() {
    git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1='\[\e]0;\w\a\]\n\[\e[32m\]\[email protected]\h \[\e[33m\]\w\[\e[0m\]$(parse_git_branch)\n\$ '
0
xyz

Hier ist eine einfache saubere Version, die ich benutze: link

 enter image description here 

0
kfcobrien
root:~/project#  -> root:~/project(dev)# 

fügen Sie den folgenden Code am Ende von ~/.bashrc ein 

force_color_Prompt=yes
color_Prompt=yes
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_Prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\[email protected]\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\[email protected]\h:\w$(parse_git_branch)\$ '
fi
unset color_Prompt force_color_Prompt
0
Ali Alp

Wenn Sie die fish-Shell verwenden, ist es recht einfach. _Fisch ist eine interaktive Shell, die viele Goodies enthält. Sie können es mit apt-get installieren.

Sudo apt-get install fish

sie können dann die Eingabeaufforderung mit ändern

> fish_config 
Web config started at 'http://localhost:8001/'. Hit enter to stop.
Created new window in existing browser session.

gehen Sie nun zu http://localhost:8001/open der Registerkarte Prompt und wählen Sie die Option classic + git

enter image description here

Klicken Sie nun auf die Schaltfläche zum Verwenden der Eingabeaufforderung, und Sie sind festgelegt.

0
Shasak