Jak uruchomić okno Git Bash z określonym katalogiem roboczym za pomocą skryptu?

86

Jak mogę uruchomić nowe okno Git Bash z określonym katalogiem roboczym za pomocą skryptu (albo Bash albo wsad Windows)?

Moim celem jest uruchomienie wielu okien Git Bash z jednego skryptu, każde ustawione w innym katalogu roboczym. W ten sposób mogę szybko zabrać się do pracy po uruchomieniu komputera, zamiast otwierania okien Git Bash i przechodzenia po każdym z nich do właściwego katalogu roboczego.

Nie pytam, jak zmienić domyślny katalog roboczy, jak to robi to pytanie , ale o uruchomienie jednego lub więcej okien terminala z różnymi katalogami roboczymi ze skryptu.

holocronweaver
źródło
1
@StevenVascellaro Zredagowano pytanie, aby wyjaśnić, dlaczego nie jest to oszustwo.
holocronweaver
To ma sens. Wycofałem podwójny głos.
Stevoisiak

Odpowiedzi:

62

Inną opcją jest utworzenie skrótu o następujących właściwościach:

wprowadź opis obrazu tutaj

Celem powinno być:

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

Rozpocznij w to folder, w którym chcesz uruchomić monit Git Bash.

Drew Noakes
źródło
1
Sława! Nigdy nie wiedziałem, że Start inma coś wspólnego z katalogiem roboczym, w którym program myśli, że się w nim znajduje.
Spowodowanie UnderflowsEverywhere
To najłatwiejsza metoda. Następnie przypiąłem ten skrót do paska zadań, a następnie Windows + 1, zachowuję to jako pierwszy element paska zadań, otwieram repozytorium bezpośrednio za pomocą git-bash.
Hareen Laks
48

Git Bash używa cmd.exedla swojego terminala oraz rozszerzeń z MSYS / MinGW, które są dostarczane przez sh.execoś w rodzaju cmd.exeopakowania. W Windows uruchamiasz nowy terminal za pomocą startpolecenia.

Zatem skrypt powłoki uruchamiający nowy terminal Git Bash z określonym katalogiem roboczym to:

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

Równoważny skrypt wsadowy systemu Windows to:

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 

Aby uzyskać taką samą czcionkę i rozmiar okna jak Git Bash uruchamiany z menu Start, najłatwiej jest skopiować ustawienia skrótów menu Start do ustawień domyślnych konsoli poleceń (aby zmienić domyślne, otwórz cmd.exe, kliknij lewym przyciskiem myszy lewą górną ikonę i wybierz Domyślne).

holocronweaver
źródło
1
To działa dla mnie: cddo katalogu, w którym chcę uruchomić Git Bash, a następnie uruchomienie startpolecenia z twojego przykładu naprawdę da mi terminal Git Bash w tym katalogu . Czy na pewno nie robisz a cd $HOME(lub cdbez argumentów) gdzieś w swoich plikach rc bash? (Na przykład .bashrc, .profile...) Pamiętaj też o literze dysku. Jeśli chcesz uruchomić Git Bash na X:dysku, to cd x:\pathnie zrobisz tego, musisz to zrobić, x:a potem cd \pathprzedstart
janos
1
Masz rację! Brakowało mi tego, że nie można tak po prostu cd x:\path. Odpowiednio zmodyfikuje moje rozwiązanie.
holocronweaver
Idealne rozwiązanie! Dodam tylko, że domyślne cmd.exeustawienia nie są takie same, jak domyślne ustawienia Git Bash po instalacji Git Bash! I musisz zrozumieć różnice między ustawieniami domyślnymi ( Defaultsz menu kontekstowego) a bieżącymi ( Properties). Tak więc zrobiłem: (1) otwórz Git Bash, wybierz Properties(aktualne ustawienia), (2) dostrój dokładnie to, czego chcę (czcionka, rozmiar okna + pozycja), (3) otwórz cmd.exe, wybierz Defaults, (4 ) kopiuj i wklej ustawienia z Git Bash do cmd.exe. Następnie OKw cmd.exeustawieniach, Cancelw Git Bashustawieniach i voila!
trejder
48

Wypróbuj opcję --cd =. Zakładając, że twój GIT Bash znajduje się w C: \ Program Files \ Git, byłoby to:

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

Jeśli jest używany w kluczu rejestru, parametr folderu można podać za pomocą% 1:

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

Mike Kowalski
źródło
Jak używać %1parametru rejestru?
Erasmus Cedernaes
1
Obecna odpowiedź jest tak przestarzała, to powinna być ta!
Küzdi Máté
Wydaje się, że dotyczy to pliku wsadowego. (.bat)
Franta
26

Dodajmy jeszcze do odpowiedzi od @Drew Noakes:

Cel:

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

Parametr cdpowinien być jedną z opcji określania katalogu roboczego.

Zauważ też, że nie mam tam żadnego --loginparametru: Zamiast tego używam innej dodatkowej aplikacji, dedykowanej tylko dla kluczy SSH: Pageant (agent uwierzytelniania PuTTY) .

Zacząć w:

C:\GitRepo

Ten sam możliwy sposób, o którym @Drew Noakes wspomniał / pokazał tutaj wcześniej, ja też go używam.

Skrót klawiszowy:

Ctrl + Alt + B

Takie skróty to kolejna mniej znana funkcja w systemie Windows. Jest jednak ograniczenie: aby skrót zaczął działać, należy go umieścić w podkatalogu użytkownika: Pulpit jest w porządku.

Jeśli nie chcesz, aby był widoczny, ale nadal można go aktywować, umieść ten .lnkplik np. W folderze szybkiego uruchamiania, ponieważ ten katalog jest przeznaczony do takich skrótów. (bez względu na to, czy wyświetlane na pulpicie) # 76080 # 3619355

"\Application Data\Microsoft\Internet Explorer\Quick Launch\"
Franta
źródło
12

Ponadto Win10 daje ci opcję otwarcia git bash z katalogu roboczego, klikając prawym przyciskiem myszy folder i wybierając tutaj GitBash.

wprowadź opis obrazu tutaj

monkrus
źródło
4

Windows 10

Jest to w zasadzie odpowiedź @ lengxuehx, ale zaktualizowana dla Win 10 i zakłada, że ​​twoja instalacja basha pochodzi z Git Bash dla Windows z oficjalnych pobrań git .

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

Skończyło się na tym, że użyłem tego po tym, jak straciłem elementy menu kontekstowego dla Git Bash jako mojego polecenia do uruchamiania z ustawień rejestru. Jeśli jesteś tego ciekawy, zrobiłem to:

  1. Utwórz nowy klucz o nazwie Bashw shellkluczu naHKEY_CLASSES_ROOT\Directory\Background\shell
  2. Dodaj wartość ciągu do Icon(nie nowego klucza!), Czyli pełną ścieżkę do pliku git-bash.exe, w tym do części git-bash.exe. Konieczne może być zawinięcie tego w cudzysłów.
  3. Edytuj domyślną wartość Bashtekstu, którego chcesz użyć w menu kontekstowym wprowadź opis obrazu tutaj
  4. Dodaj podklucz do Bashwywoływanegocommand
  5. Zmień commandwartość domyślną nacmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit wprowadź opis obrazu tutaj

Wtedy powinieneś być w stanie zamknąć rejestr i zacząć używać Git Bash z dowolnego miejsca, które jest prawdziwym katalogiem. Na przykład This PCnie jest prawdziwym katalogiem.

wprowadź opis obrazu tutaj

kayleeFrye_onDeck
źródło
3
Dla HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell\command"C:\Program Files\Git\git-bash.exe" "--cd=%v."
przypomnienia
Ładny! Dzięki, @Ferrybig! ^ _ ^
kayleeFrye_onDeck
4

To jest polecenie, które można wykonać bezpośrednio w Run dialog box(skrót to win+ R), a także działa dobrze jako .batskrypt:

cmd /c (start /d "/path/to/dir" bash --login) && exit
lengxuehx
źródło
1
uruchamia nowe cmd w
systemie
1
@kyb to powinno być /bdla Win 10
kayleeFrye_onDeck
@kyb Zrobiłem odpowiedź, która jest modyfikacją odpowiedzi lengxuehx, na wypadek gdybyś Ty lub ktokolwiek inny był nadal zainteresowany: stackoverflow.com/a/39779451/3543437
kayleeFrye_onDeck
3

Nie jestem zaznajomiony z Git Bash, ale zakładając, że jest to powłoka git (taka jak git-sh) rezydująca, /path/to/my/gitshella twój ulubiony program terminalowy nazywa się `` myterm '', możesz napisać następujący skrypt:

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

Zauważ, że parametr -edo wykonania może mieć inną nazwę w Twoim ulubionym programie terminalowym.

Marcus Rickert
źródło
Dzięki, twoja odpowiedź skłoniła mnie do zastanowienia się we właściwym kierunku! Tak właśnie robię rzeczy w Linuksie, ale nie mogłem znaleźć odpowiednika w MS Windows ... aż do teraz! W przypadku Git Bash mytermjest to cmd.exe z dodatkami za pośrednictwem MSYS / MinGW. Aby uruchomić nowe polecenie cmd, użyj startpolecenia specyficznego dla systemu Windows, po którym następuje ścieżka do Git Bash, sh.exea następnie dowolne opcje wiersza poleceń, które lubisz. Moja odpowiedź zawiera szczegóły.
holocronweaver
-1

Może podałem zły kierunek, ale podoba mi się ta sztuczka.

Używając Eksploratora Windows, wskazując na dowolny katalog, wpisz "cmd" w pasku adresu, otworzy się wiersz poleceń Windows w tym katalogu.

Jeśli masz katalog „Git” w swojej ścieżce, w ten sam sposób możesz wpisać „git-bash” w pasku adresu, a Git Shell otworzy się w tym katalogu.

Adauto Bronzatti
źródło