Git: Öffnen Sie Git-Bash in einem bestimmten Verzeichnis

Git: Öffnen Sie Git-Bash in einem bestimmten Verzeichnis

Ich kann git-bash auf verschiedene Arten über die Windows-Eingabeaufforderung starten:

"C:\Program Files\Git\bin\sh.exe"
"C:\Program Files\Git\git-bash.exe"
"C:\Program Files\Git\usr\bin\mintty.exe"

Ich möchte git-bash mit einem solchen Aufruf in einem bestimmten Verzeichnis starten.


Zum Kontext: Ich mache das im SAS Enhanced Editor. Der eigentliche Aufruf ist

%sysexec(start "" "C:\Program Files\Git\bin\sh.exe" && exit);

Für diejenigen, die mit SAS nicht vertraut sind: %sysexecÖffnet eine Instanz der Windows-Eingabeaufforderung und gibt den als Argument angegebenen Befehl aus. Funktioniert überraschend gut. Ich möchte jedoch die Möglichkeit haben, Git-Bash in einem bestimmten Verzeichnis zu starten, nicht nur in Home.

Zu diesem Zweck kann ich einen Eintrag erstellen in .bashrc:

cd /c/new/starting/dir

Das Problem dabei besteht jedoch darin, dass jedes Mal, wenn ich eine Git-Bash öffne, beispielsweise über das Kontextmenü in einem bestimmten Ordner, das Standardverzeichnis das von ist .bashrc.

Ich sehe dasEs gibt Git-Bash-Startoptionenwie --cd-to-homeoder --cd=<path>, aber ich kann sie nicht zum Laufen bringen. Zum Beispiel,

"C:\Program Files\Git\bin\sh.exe" --cd-to-home
"C:\Program Files\Git\bin\sh.exe --cd-to-home"
"C:\Program Files\Git\git-bash.exe" --cd-to-home
"C:\Program Files\Git\git-bash.exe --cd-to-home"
etc.

Ist es möglich, Git-Bash in einem bestimmten Verzeichnis über die Windows-Eingabeaufforderung zu starten? Wenn ja, wie lautet die richtige Syntax?

BONUS: Bonuspunkte für die Eingabe von 50 Zeichen oder weniger

Antwort1

"C:\Program Files\Git\git-bash.exe" --cd=c:\path\to\folder

Antwort2

Eine mögliche Lösung besteht darin, das Verzeichnis zu ändern, bevor Sie git-bash öffnen. Standardmäßig wird git-bash im aktuellen Verzeichnis geöffnet. Um dies zu tun, setzen Sie einen cdAufruf vor das start,

cd C:\specific\dir\to\open && start "" "C:\Program Files\Git\bin\sh.exe"

Da dies in SAS erfolgt, kann das spezifische Verzeichnis in einer Makrovariable gespeichert werden. Dies garantiert die Anforderung, dass es innerhalb von 50 Zeichen liegen muss (und daher über einen Hotkey im KEYSMenü aufrufbar ist). Irgendwo in Ihrem Code können Sie das Git-Arbeitsverzeichnis zuweisen,

%let gwd = C:\specific\dir\to\open;

Der %sysexecAnruf sieht dann so aus:

%sysexec(cd &gwd. && start "" "C:\Program Files\Git\bin\sh.exe" && exit);

Dies funktioniert folgendermaßen. Zuerst erweitert SAS &gwd. Dann öffnet es eine Windows-Eingabeaufforderung. cdDas Verzeichnis wird in das Verzeichnis geändert, in das &gwd.es aufgelöst wurde. Git-bash wird dann im aktuellen Verzeichnis geöffnet (das in geändert wurde &gwd.). Schließlich wird beim Schließen von Git-bash der exitBefehl eingegeben, wodurch die Windows-Eingabeaufforderungssitzung geschlossen wird.

Leider scheint es, als würde der Anfang cdgerade genug Verzögerung zwischen dem Aufruf und dem Öffnen von Git-Bash einführen, um störend zu sein. Ich vermute, dass die Eingabe eines cdBefehls innerhalb von Git-Bash schneller sein könnte, aber dieser Ansatz funktioniert.

Antwort3

Sie können ein Skript wie dieses erstellen:

cd c:\path\to\particular\directory
"C:\Program Files\Git\bin\sh.exe" 

Speichern Sie das entweder als „ whatever.cmdoder“ whatever.batund doppelklicken Sie darauf.

Der Einfachheit halber können Sie Ihr Skript mit den folgenden Schritten zur Taskleiste hinzufügen. Ich dachte, ich füge dies hinzu, da es nicht ganz so einfach ist, wie Sie vielleicht erwarten (das Skript selbst lässt sich nicht einfach auf die Taskleiste ziehen):

  1. Klicken Sie mit der rechten Maustaste auf das Skript und wählen Sie „Verknüpfung erstellen“
  2. Klicken Sie mit der rechten Maustaste auf die Verknüpfung, die Sie erstellt haben, und wählen Sie „Eigenschaften“
  3. Geben Sie unter Verknüpfung, Ziel Folgendes ein:cmd /c C:\path\to\your\script\whatever.cmd
  4. Notiz: Möglicherweise müssen Sie den vollständigen Pfad angeben zucmd(z. B. C:\Windows\System32\cmd.exe...)

Klicken Sie jetzt einfach auf den Befehl in Ihrer Taskleiste, um Ihr Skript mit einem Klick auszuführen.

verwandte Informationen