Wie starte ich ein Git Bash-Fenster mit einem bestimmten Arbeitsverzeichnis mithilfe eines Skripts?

85

Wie kann ich ein neues Git Bash-Fenster mit einem bestimmten Arbeitsverzeichnis mithilfe eines Skripts (entweder Bash- oder Windows-Batch) starten?

Mein Ziel ist es, mehrere Git Bash-Fenster von einem einzigen Skript aus zu starten, die jeweils in einem anderen Arbeitsverzeichnis gespeichert sind. Auf diese Weise kann ich nach dem Booten des Computers schnell zur Arbeit gehen, anstatt Git Bash-Fenster öffnen und jedes zum richtigen Arbeitsverzeichnis navigieren zu müssen.

Ich frage nicht, wie man das Standardarbeitsverzeichnis ändert, wie diese Frage , sondern ein oder mehrere Terminalfenster mit verschiedenen Arbeitsverzeichnissen über ein Skript zu starten.

Holocronweber
quelle
1
@StevenVascellaro Die Frage wurde bearbeitet, um zu erklären, warum dies kein Betrug ist.
Holocronweaver
Das macht Sinn. Ich habe meine doppelte Stimme zurückgezogen.
Stevoisiak

Antworten:

58

Eine weitere Option besteht darin, eine Verknüpfung mit den folgenden Eigenschaften zu erstellen:

Geben Sie hier die Bildbeschreibung ein

Ziel sollte sein:

"% SYSTEMDRIVE% \ Programme (x86) \ Git \ bin \ sh.exe" --login

Start in ist der Ordner, in den Ihre Git Bash-Eingabeaufforderung gestartet werden soll.

Drew Noakes
quelle
1
Ein großes Lob! Ich wusste nie, dass Start inetwas mit dem Arbeitsverzeichnis zu tun hat, in dem sich ein Programm befindet.
CausingUnderflowsEverywhere
Dies ist die einfachste Methode. Danach habe ich diese Verknüpfung an die Taskleiste geheftet, dann Windows + 1. Ich behalte das als erstes Element der Taskleiste und öffne das Repo direkt mit git-bash.
Hareen Laks
48

Git Bash verwendet cmd.exefür sein Terminal plus Erweiterungen von MSYS / MinGW, die von sh.exeeiner Art cmd.exeWrapper bereitgestellt werden . In Windows starten Sie mit dem startBefehl ein neues Terminal .

Ein Shell-Skript, das ein neues Git Bash-Terminal mit einem bestimmten Arbeitsverzeichnis startet, lautet also:

(cd C:/path/to/dir1 && start sh --login) &
(cd D:/path/to/dir2 && start sh --login) &

Ein äquivalentes Windows-Batch-Skript lautet:

C:
cd \path\to\dir1
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login 
D:
cd \path\to\dir2
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login 

Um die gleiche Schriftart und Fenstergröße wie der über das Startmenü gestartete Git Bash zu erhalten, ist es am einfachsten, die Einstellungen für die Startmenüverknüpfung in die Standardeinstellungen der Befehlskonsole zu kopieren (um die Standardeinstellungen zu ändern, öffnen Sie cmd.exe, klicken Sie mit der linken Maustaste auf das Symbol oben links und wählen Sie Standardeinstellungen).

Holocronweber
quelle
1
Dies funktioniert für mich: In cddas Verzeichnis, in dem Git Bash gestartet werden soll, und das Ausführen des startBefehls in Ihrem Beispiel gibt mir wirklich ein Git Bash-Terminal in diesem Verzeichnis. Sind Sie sicher, dass Sie nicht irgendwo in Ihren Bash-RC-Dateien ein cd $HOME(oder cdohne Argumente) machen? (Wie .bashrc, .profile...) Beachten Sie auch den Laufwerksbuchstaben. Wenn du Git Bash auf dem X:Laufwerk starten willst , dann cd x:\pathwird es nicht gekürzt, du musst es tun x:und dann cd \pathvorherstart
janos
1
Sie haben Recht! Mir hat die Tatsache gefehlt, dass man nicht einfach kann cd x:\path. Wird meine Lösung entsprechend bearbeiten.
Holocronweaver
Eine perfekte Lösung! Lassen Sie mich nur hinzufügen, dass cmd.exeStandardeinstellungen sind nicht die gleichen, wie Standard - Git Bash Einstellungen auf Git Bash Installation! Und Sie müssen die Unterschiede zwischen den Standardeinstellungen ( Defaultsaus dem Kontextmenü) und den aktuellen ( Properties) verstehen . Also, was ich getan habe war: (1) Git Bash öffnen, auswählen Properties(aktuelle Einstellungen), (2) es genau anpassen, was ich will (Schriftart, Fenstergröße + Position), (3) öffnen cmd.exe, auswählen Defaults, (4 ) Kopieren-Einfügen-Einstellungen von Git Bash nach cmd.exe. Dann OKin cmd.exe'Einstellungen, Cancelin Git Bash' s Einstellungen und voila!
Trejder
47

Versuchen Sie die Option --cd =. Angenommen, Ihr GIT-Bash befindet sich in C: \ Programme \ Git:

"C:\Program Files\Git\git-bash.exe" --cd="e:\SomeFolder"

Bei Verwendung im Registrierungsschlüssel kann der Ordnerparameter mit% 1 angegeben werden:

"C:\Program Files\Git\git-bash.exe" --cd="%1"

Mike Kowalski
quelle
Wie würde ich den %1Registrierungsparameter verwenden?
Erasmus Cedernaes
1
Die aktuelle Antwort ist so veraltet, diese sollte die richtige sein!
Küzdi Máté
Dies scheint für eine Batch-Datei zu gelten. (.bat)
Franta
26

Lassen Sie uns noch die Antwort von @Drew Noakes addieren:

Ziel:

"C:\Program Files\Git\git-bash.exe" --cd=C:\GitRepo

Der cdParameter sollte eine der Optionen zum Angeben des Arbeitsverzeichnisses sein.

--loginBeachten Sie auch, dass ich dort keine Parameter habe: Stattdessen verwende ich eine andere zusätzliche App, die nur für SSH-Schlüssel vorgesehen ist: Pageant (PuTTY-Authentifizierungsagent) .

Startet in:

C:\GitRepo

Genauso wie @Drew Noakes hier früher erwähnt / gezeigt hat, benutze ich es auch.

Tastenkürzel:

Ctrl + Alt + B

Solche Verknüpfungen sind eine weitere weniger bekannte Funktion in Windows. Es gibt jedoch eine Einschränkung: Damit die Verknüpfung wirksam wird, muss sie irgendwo im Unterverzeichnis des Benutzers platziert werden: Der Desktop ist in Ordnung.

Wenn Sie nicht möchten, dass es sichtbar und dennoch aktivierbar ist, platzieren Sie diese .lnkDatei, dh im Schnellstartordner, da dieses Verzeichnis für solche Verknüpfungen vorgesehen ist. (egal ob auf dem Desktop angezeigt) # 76080 # 3619355

"\Application Data\Microsoft\Internet Explorer\Quick Launch\"
Franta
quelle
11

Darüber hinaus bietet Win10 die Möglichkeit, Git Bash aus Ihrem Arbeitsverzeichnis zu öffnen, indem Sie mit der rechten Maustaste auf Ihren Ordner klicken und hier GitBash auswählen.

Geben Sie hier die Bildbeschreibung ein

monkrus
quelle
4

Windows 10

Dies ist im Grunde die Antwort von @ lengxuehx, wurde jedoch für Win 10 aktualisiert und setzt voraus, dass Ihre Bash-Installation von Git Bash für Windows aus den offiziellen Downloads von git stammt .

cmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit

Ich habe dies letztendlich verwendet, nachdem ich meine Kontextmenüelemente für Git Bash als meinen Befehl zum Ausführen über die Registrierungseinstellungen verloren hatte. Falls Sie neugierig sind, habe ich Folgendes getan:

  1. Erstellen Sie einen neuen Schlüssel namens Bashder shellTasteHKEY_CLASSES_ROOT\Directory\Background\shell
  2. Fügen Sie einen Zeichenfolgenwert hinzu Icon(kein neuer Schlüssel!), Der den vollständigen Pfad zu Ihrer git-bash.exe enthält, einschließlich des Teils git-bash.exe. Möglicherweise müssen Sie dies in Anführungszeichen setzen.
  3. Bearbeiten Sie den Standardwert von Bashfür den Text, den Sie im Kontextmenü verwenden möchten Geben Sie hier die Bildbeschreibung ein
  4. Fügen Sie einen Bashaufgerufenen Unterschlüssel hinzucommand
  5. Ändern Sie commandden Standardwert incmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit Geben Sie hier die Bildbeschreibung ein

Dann sollten Sie in der Lage sein, die Registrierung zu schließen und Git Bash von jedem Ort aus zu verwenden, der ein echtes Verzeichnis ist. Zum Beispiel This PCist kein echtes Verzeichnis.

Geben Sie hier die Bildbeschreibung ein

kayleeFrye_onDeck
quelle
3
Für die Aufzeichnung in der Registry, der Standard - git bash Eintrag in HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell\commandist"C:\Program Files\Git\git-bash.exe" "--cd=%v."
Ferrybig
Nett! Danke, @Ferrybig! ^ _ ^
kayleeFrye_onDeck
4

Dies ist der Befehl, der direkt in ausgeführt werden kann Run dialog box(Verknüpfung ist win+ R) und auch als .batSkript gut gespeichert funktioniert :

cmd /c (start /d "/path/to/dir" bash --login) && exit
lengxuehx
quelle
1
es läuft neue cmd in Windows 10
Kyb
1
@kyb es soll /bfür Win 10 sein
kayleeFrye_onDeck
@kyb Ich habe eine Antwort gegeben, die eine Modifikation der Antwort von lengxuehx ist, falls Sie oder jemand anderes noch interessiert ist: stackoverflow.com/a/39779451/3543437
kayleeFrye_onDeck
3

Ich bin mit Git Bash nicht vertraut, aber wenn ich davon ausgehe, dass es sich um eine Git-Shell (z. B. git-sh) handelt, in der sich /path/to/my/gitshellIhr Lieblings-Terminalprogramm "myterm" befindet, können Sie Folgendes skripten:

(cd dir1; myterm -e /path/to/my/gitshell) &
(cd dir2; myterm -e /path/to/my/gitshell) &
...

Beachten Sie, dass der Parameter -efür die Ausführung in Ihrem bevorzugten Terminalprogramm möglicherweise anders benannt ist.

Marcus Rickert
quelle
Danke, deine Antwort hat mich dazu gebracht, in die richtige Richtung zu denken! So mache ich Dinge unter Linux, aber ich konnte das Äquivalent in MS Windows nicht herausfinden ... bis jetzt! Für Git Bash mytermist cmd.exe mit Ergänzungen über MSYS / MinGW. Um ein neues Cmd zu starten, verwenden Sie den Windows-spezifischen startBefehl, gefolgt vom Pfad zu Git Bash sh.exeund den gewünschten Befehlszeilenoptionen. Meine Antwort gibt Details.
Holocronweaver
-1

Ich könnte eine falsche Richtung vorgeben, aber ich mag diesen Trick.

Geben Sie im Windows Explorer auf ein beliebiges Verzeichnis ein und geben Sie "cmd" in die Adressleiste ein. Daraufhin wird die Windows-Eingabeaufforderung in diesem Verzeichnis geöffnet.

Wenn Sie das Verzeichnis "Git" in Ihrem Pfad haben, können Sie auf die gleiche Weise "git-bash" in die Adressleiste eingeben. In diesem Verzeichnis wird eine Git-Shell geöffnet.

Adauto Bronzatti
quelle