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.


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.


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).


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"


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\"

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


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


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

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.


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.