Wie starte ich Git Bash über die DOS-Befehlszeile?

106

Ich habe eine einfache Frage, aber ich konnte die Antwort noch nicht finden. Ich möchte Git Bash aus einer DOS-Batch-Datei starten. Folgendes habe ich bisher versucht:

  1. Startete Git Bash über die Startschaltfläche von Win 7
  2. Verwenden Sie STRG + ALT + ENTF, um den Prozess als "sh.exe" zu identifizieren.
  3. Sh.exe aus der Batch-Datei mit dem Startbefehl gestartet

    start sh.exe
    

Dies startet jedoch nicht die vollständige Git Bash-Umgebung. Git Bash hat in der Regel „mingw32“ in der Titelleiste, aber sh.exe hat einen vollständigen Pfad zu ... Git\bin\sh.exe. Ich habe das Gefühl, dass es einige Überlagerungen oder Abhängigkeiten gibt, die mir möglicherweise nicht bekannt sind und die ebenfalls geladen werden müssen (eingezogen? Importiert?).

Dies war eines der besten Ergebnisse, die ich beim Durchsuchen des Webs gefunden habe, aber es macht für mich keinen Sinn und ich bin mir nicht sicher, ob es genau auf meine Situation zutrifft:

Ausführen von Git über die Windows-Befehlszeile: Wo befinden sich Schlüsseldateien?

Ich bin ein Anfänger in der Welt des DOS-Batch-Scripting.

Eric Hepperle - CodeSlayer2010
quelle
1
Nun, es ist eigentlich nicht die DOS-Befehlszeile, es sei denn: (a) Sie haben eine Zeitanomalie festgestellt und verwenden Windows 9x / ME, wobei command.comdie einzige Shell im Betriebssystem enthalten ist. (B) Sie haben eine 32- Bit NT-System und entweder sich command.comselbst aufgerufen , oder ein altes Programm hat es für Sie getan. Siehe Was ist der Unterschied zwischen CMD und Eingabeaufforderung in Windows? Für mehr Information.
SamB

Antworten:

125

Wenn Sie aus einer Batchdatei starten möchten:

  • für x86

    start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login
    
  • für x64

    start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login
    
Endoro
quelle
Danke @Endoro! Obwohl die Antwort von @Klas Mellbourn für Powershell korrekt war, ist Ihre Antwort korrekter, da ich von einer DOS-Batch-Datei ausgehe. Durch das Hinzufügen der Direktive "start" wird das Programm asynchron ausgeführt, genau das, was ich brauche! Daumen hoch!
Eric Hepperle - CodeSlayer2010
14
Gibt es eine Möglichkeit, einen Befehl in das Git-Batch-Fenster einzugeben und auszuführen, nachdem er in der Batch-Datei geöffnet wurde?
Nick
1
@OviC Sind Sie sicher, dass Ihre Bearbeitung korrekt ist? "Programme (x86)" existiert nur unter x64-Architektur für 32-Bit-Programme.
Drunix
@Drunix Sie haben Recht, es gibt keinen Pfad "Programme (x86)" in x86-Systemen. Ich habe einen Rollback gemacht. Vielen Dank.
Endoro
Was ist, wenn es nicht auf dem Systemlaufwerk installiert ist? Was ist, wenn es nicht in Programmdateien installiert ist?
Michael Kruglos
44

Ich bin mir nicht sicher, was Sie genau unter "vollständiger Git Bash-Umgebung" verstehen, aber ich bekomme die nette Aufforderung, wenn ich das tue

"C:\Program Files\Git\bin\sh.exe" --login

In PowerShell

& 'C:\Program Files\Git\bin\sh.exe' --login

Durch den --loginSchalter führt die Shell die Startdateien der Login-Shell aus .

Klas Mellbourn
quelle
Danke @Klas Mellbourn. Ihre Antwort ist gut für Powershell, aber ohne die Hinzufügung der Direktive "start" wie in Endoros Antwort wird die Ausführung des nächsten Programms angehalten, bis die Shell beendet wird, was nicht das gewünschte Verhalten ist, sonst hätte ich Sie gewählt.
Eric Hepperle - CodeSlayer2010
Ich benutze Console2 zum Fenster cmd, und dies verursacht seltsames Verhalten. Ich habe dies in eine .bat-Datei @"%SYSTEMDRIVE%\Program Files\Git\bin\bash.exe" --login
eingefügt
25

Ich bevorzuge git-bash.exe anstelle von sh.exe.

start "" "%ProgramFiles%\Git\git-bash.exe" -c "tail -f /c/Windows/win.ini"

Sie können das Schließen des Fensters /usr/bin/bash --login -ibeenden, wenn Sie am Ende anrufen .

start "" "%ProgramFiles%\Git\git-bash.exe" -c "echo 1 && echo 2 && /usr/bin/bash --login -i"

Hinweis: Ich bin mir nicht sicher, ob dies ein guter Weg ist :)

kujiy
quelle
4
Schöne Antwort, aber das Git-Bash-Fenster wird sofort geschlossen. Wissen Sie, wie Sie das automatische Schließen deaktivieren, nachdem der Befehl die Ausführung beendet hat?
Mark
@ Mark Danke Mark. Ich habe meiner obigen Antwort ein Beispiel hinzugefügt. Leider bin ich mir nicht sicher, wie wir das richtig machen sollen, weil ich keine Windows-Person bin :)
Kujiy
1
[code] start "" "% ProgramFiles% \ Git \ git-bash.exe" [/ code] funktioniert hervorragend!
PauAI
@PauAI 2018 jetzt ... Ich habe es start "" "%ProgramFiles%\Git\git-bash.exe"über eine Administrator-Befehlszeile versucht , und obwohl Git Bash in einem neuen Fenster angezeigt wird , gibt die Eingabe eines einfachen Befehls wie " lsErgebnisse" keine Ausgabe ein. Diese Methode scheint die Ausführung von Linux-Befehlen nicht zuzulassen. ... EDIT: Hat funktioniert, es hat nur lange gedauert (2 Minuten), um ls auszuführen. Dann lief ich wieder in weniger als 1 Sekunde. ... seltsam.
Eric Hepperle - CodeSlayer2010
8

Ich bevorzuge es, git in die Umgebungsvariable zu setzen und nur aufzurufen

c:\Users\[myname]>sh
or 
c:\Users\[myname]>bash

Schritte zum Erstellen einer Umgebungsvariablen (Win7)

  • Klicken Sie auf dem Desktop mit der rechten Maustaste auf das Computersymbol.
  • Wählen Sie Eigenschaften aus dem Kontextmenü.
  • Klicken Sie auf den Link Erweiterte Systemeinstellungen.
  • Klicken Sie auf Umgebungsvariablen.
  • Klicken Sie im Abschnitt Benutzervariablen auf die Schaltfläche NEU, geben Sie den Variablennamen als GIT_HOMEund den Wert als (Ordner, in dem Sie git installiert haben) ein.

    • für mich war es das c:\tools\git, andere haben es vielleichtC:\Program Files\Git
  • Suchen Sie die PATHUmgebungsvariable und wählen Sie sie aus. Klicken Sie auf Bearbeiten. (Wenn die Umgebungsvariable PATH nicht vorhanden ist, klicken Sie auf Neu.)

  • Fügen Sie im Fenster Bearbeiten einen neuen Wert hinzu %GIT_HOME%und %GIT_HOME%\bin. OK klicken. Schließen Sie alle verbleibenden Fenster, indem Sie auf OK klicken.
  • [Stellen Sie sicher, dass Sie das CMD schließen, das Sie für Git verwenden möchten.]
  • Öffnen Sie die neue Eingabeaufforderung und geben Sie einfach shoder bashoder eingit-bash
alter Mönch
quelle
2
Vielen Dank! Ich konnte dies mit GIT_HOME as zum Laufen bringen C:\Program Files\Gitund git-bashüber CMD tippen . echo %GIT_HOME%
Seltsamerweise
Vielen Dank, das war eine großartige Ergänzung. Wenn Sie die GIT_HOMEVariable haben und den git-bashBefehl (oder git-cmd) verwenden, wird sie in einem neuen Fenster geöffnet. Wenn Sie der Umgebungsvariablen "PATH" hinzufügen, wird in diesem vorhandenen Fenster gewechselt. Sie können auch exit"logout" der Git-Bash eingeben und trotzdem die DOS-Eingabeaufforderung beibehalten.
Keith E. Truesdell
4
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login -i

Git Bash wird geöffnet.

user3616334
quelle
3

https://stackoverflow.com/a/33368029/15789

Ich habe hier eine Antwort gepostet.

Öffnen Sie ein Windows-Befehlsfenster und führen Sie dieses Skript aus. Wenn sich in Ihrem Arbeitsverzeichnis etwas ändert, wird ein Bash-Terminal in Ihrem Arbeitsverzeichnis geöffnet und der aktuelle Git-Status angezeigt. Das Bash-Fenster bleibt geöffnet, indem exec bash aufgerufen wird.

Wenn Sie mehrere Projekte haben, können Sie Kopien dieses Skripts mit einem anderen Projektordner erstellen und es über ein Hauptstapelskript aufrufen.

RuntimeException
quelle
3

Ich habe die obigen Informationen verwendet, um eine dauerhaftere Lösung zu erstellen. Im Folgenden wird der Alias ​​sh erstellt, mit dem Sie Git Bash öffnen können:

echo @start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login > %systemroot%\sh.bat
dpate
quelle
Danke dpate! Ich habe Ihre Echo-Anweisung in die Befehlszeile eingefügt und ausgeführt, shund ein Git-Bash-Fenster wurde gestartet, und ich konnte Befehle perfekt ausführen. Können Sie Ihrer Antwort ein kleines Detail hinzufügen, um zu erklären, wie dies funktioniert? Ich möchte lieber lernen, wie das Angeln funktioniert, als dass mir jemand einen Fisch gibt, und ich denke, dass dies anderen zugute kommt, die nach einer guten Antwort suchen. danke
Eric Hepperle - CodeSlayer2010
0

Die Antwort von Endoro ist gealtert und ich kann keinen Kommentar abgeben.

# if you want to launch from a batch file or the command line:

start "" "%ProgramFiles%\Git\bin\sh.exe" --login
ThaJay
quelle
0

Sie können Umgebungsvariablen einen Git-Pfad hinzufügen

  • Für x86

%SYSTEMDRIVE%\Program Files (x86)\Git\bin\

  • Für x64

%PROGRAMFILES%\Git\bin\

Öffnen Sie cmd und schreiben Sie diesen Befehl, um git bash zu öffnen

sh --login

Sie können dieses GIF-Bild für weitere Details sehen:

https://media1.giphy.com/media/WSxbZkPFY490wk3abN/giphy.gif

Eng_Farghly
quelle