2013-03-13 5 views
37

Ich habe versucht, Ruby 2.0 zu installieren. Meine Befehlszeile urped und sieht nun wie folgt aus:-bash: __git_ps1: Befehl nicht gefunden

-bash: __git_ps1: command not found 
[11:58:28][[email protected] ~]$ 

ich keine Ahnung, wie der __git_ps1 Befehl, um loszuwerden, nicht Fehler gefunden. Ich habe mein .bash_profile und meine .bashrc durchsucht, um zu sehen, ob es versucht, eine Variable oder etwas zu setzen, und nichts sehe. Der einzige Ort, an dem ich git_ps1 finden kann, ist in ~/.dotfiles/.bash_prompt. Ich ersetze den Inhalt dieser Datei komplett, logge mich aus und logge mich wieder ein und es behebt nichts.

Ich sah this, aber ich bin ziemlich neue Linie zu befehlen, so dass ich mich nur verwirrt.

Irgendwelche Ideen?

+0

Welche Version von Git verwenden Sie? –

+0

werfen Sie einen Blick auf https://bbs.archlinux.org/viewtopic.php?id=147462 –

+0

git Version 1.7.10.2 (Apple Git-33) –

Antwort

16

BASH bietet eine ganze Reihe von Möglichkeiten, um Ihre Eingabeaufforderung automatisch so einzustellen, dass Sie nützliche Informationen erhalten. Sie legen die Eingabeaufforderung fest, indem Sie die Umgebungsvariable PS1 festlegen. Zum Beispiel, wenn ich gesetzt PS1="$ " mein Prompt wird wie folgt aussehen:

$ 

Nicht zu informativ. Ich kann nur sagen, dass die Befehlszeile mich auffordert. Wenn ich

jedoch eingestellt PS1=\[email protected]\h: \w$, jetzt meine Prompt wird wie folgt aussehen:

[email protected]:/usr/bin$ 

, das mir sagt, wie ich in (der \u) angemeldet bin, die Maschine, die ich auf mich (\h), und das Verzeichnis, in dem ich mich befinde (\w). Wenn ich git verwende, wäre es nett, wenn der git-Zweig, in dem ich mich befinde, auch Teil meiner Eingabeaufforderung ist.

Dies ist genau das, was mit Ihrer .profile, Ihrer .bashrc Datei, Ihrem .bash_login oder Ihrem .bash_profile Skript geschieht. Oder, was ein Systemadministrator in /etc/profile getan hat.

Es gibt ein paar Dinge, die Sie tun können. Entweder:

  • Laden Sie die fehlenden __git_ps1 und stellen Sie sicher, dass es in Ihrer $PATH Umgebungsvariablen (die durch eine Kombination der verschiedenen Initialisierungsdateien oben erwähnt eingestellt ist)
  • ändern PS1 Umgebungsvariable in beliebiger Initialisierungsdatei wird ausgeführt (ich glaube es ist wahrscheinlich .bash_profile.

Fügen Sie einfach diese als letzte Zeile:

PS1="\[email protected]\h:\w\n$ " 

Der zusätzliche \n druckt das Dollarzeichen prompt auf der Linie unten wie folgt aus:

[email protected]:/usr/bin 
$ 

ich das tun, weil die Die Eingabeaufforderung kann ziemlich lang werden und das Bearbeiten der Befehlszeile wird schwierig, wenn die Eingabeaufforderung länger als 30 bis 50 Zeichen ist. Ansonsten ist es so ziemlich die Standard-Eingabeaufforderung, die die meisten Benutzer verwenden. Sie können mehr über das Einstellen der BASH-Eingabeaufforderungen in der man pages sehen. (Suchen Sie nach dem Wort Eingabeaufforderung auf dieser Seite).

Wenn Sie es ein wenig verwirrend finden, seien Sie froh, dass Sie nicht Kornshell verwenden. Ich benutze Kornshell und die gleiche Aufforderung PS1=\[email protected]\h:\w\n$ tut zu bekommen, habe ich meine prompt als:

export PS1='$(print -n "`logname`@`hostname`:";if [[ "${PWD#$HOME}" != "$PWD" ]] then; print -n "~${PWD#$HOME}"; else; print -n "$PWD";fi;print "\n$ ")' 
+0

Ich habe dies der letzten Zeile meines BP hinzugefügt und es bricht jetzt zumindest nicht. Ich werde weiter versuchen herauszufinden, warum ich das Unten nicht einrollen kann und das auch machen kann. Danke allen. –

+4

Gehen Sie einfach in Git und laden Sie die Datei manuell herunter. Gehen Sie in einem Browser zu https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh und klicken Sie auf die Schaltfläche *** Raw ***. Dann ausschneiden und einfügen. –

+6

Die Frage war über "__git_ps1", die in git-prompt.sh deklariert ist. Die @ emil-lundberg Antwort ist die richtige Antwort. – Metal3d

101

Führen Sie die folgenden Schritte aus:

$ curl -L https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh > ~/.bash_git 

Und dies Ihrer ~/.bashrc nach oben hinzufügen:

source ~/.bash_git 

Re-Login zu Ihrer Shell und Sie sollten eingestellt werden.

+0

Blake, bekomme ich das: curl: (3) missformed –

+3

Wenn Sie git lokal installiert haben (zumindest auf Fedora), ist das Skript git-prompt.sh mit der Git-Distribution unter '/ usr/share/git enthalten -core/contrib/completion/git-prompt.sh' –

+1

@AlexJordan Ähnliches gilt unter Arch: '/ usr/share/git/completion/git-prompt.sh' –

27

Ihr System Suche nach einem git-prompt.sh, müssen Sie source, dass für die __git_ps1 Funktion zur Verfügung stehen. In Arch befindet es sich derzeit unter /usr/share/git/completion/git-prompt.sh. Fügen Sie

source /path/to/git-prompt.sh 

zu einem geeigneten Shell-Skript hinzu. Wenn Sie nicht sicher sind, wo, fügen Sie es zu Ihrem ~/.bashrc hinzu.

Wenn Sie locate installiert haben, können Sie das verwenden, um die Datei git-prompt.sh zu finden, aber Sie müssen möglicherweise zuerst updatedb als root ausführen.

+4

Dies ist die gute Antwort, fügen Sie diese in ~ /. Bashrc VOR dem PS1-Export "Quelle/share/git-core/contrib/completion/git-prompt.sh" ohne Anführungszeichen – Metal3d