Come posso avviare una finestra Git Bash con una particolare directory di lavoro utilizzando uno script?


88

Come posso avviare una nuova finestra Git Bash con una directory di lavoro specificata utilizzando uno script (Bash o batch di Windows)?

Il mio obiettivo è avviare più finestre Git Bash da un singolo script, ciascuna impostata su una directory di lavoro diversa. In questo modo posso mettermi subito al lavoro dopo aver avviato il computer invece di dover aprire le finestre Git Bash e navigare ognuna nella directory di lavoro corretta.

Non sto chiedendo come modificare la directory di lavoro predefinita, come fa questa domanda , ma per avviare una o più finestre di terminale con directory di lavoro diverse da uno script.


1
@StevenVascellaro Domanda modificata per spiegare perché questo non è uno stupido.
holocronweaver

Questo ha senso. Ho ritirato il mio voto duplicato.
Stevoisiak

Risposte:


63

Un'altra opzione è creare un collegamento con le seguenti proprietà:

inserisci qui la descrizione dell'immagine

L'obiettivo dovrebbe essere:

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

Inizia in è la cartella in cui desideri venga avviato il prompt di Git Bash.


1
Kudos! Non Start inho mai saputo che avesse qualcosa a che fare con la directory di lavoro in cui un programma pensa di
trovarsi

Questo è il metodo più semplice. Successivamente, ho bloccato quella scorciatoia sulla barra delle applicazioni, quindi su Windows + 1, lo tengo come primo elemento della barra delle applicazioni, apre direttamente il repository con git-bash.
Hareen Laks

48

Git Bash utilizza cmd.exeper il suo terminale più le estensioni da MSYS / MinGW fornite da sh.exe, una sorta di cmd.exewrapper. In Windows si avvia un nuovo terminale utilizzando il startcomando.

Quindi uno script di shell che avvia un nuovo terminale Git Bash con una directory di lavoro specifica è:

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

Uno script batch di Windows equivalente è:

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 

Per ottenere lo stesso carattere e la stessa dimensione della finestra di Git Bash avviato dal menu di avvio, è più semplice copiare le impostazioni del collegamento del menu di avvio nelle impostazioni predefinite della console di comando (per modificare le impostazioni predefinite, apri cmd.exe, fai clic con il pulsante sinistro del mouse sull'icona in alto a sinistra e seleziona Default).


1
Questo funziona per me: cdnella directory voglio che Git Bash si avvii, e quindi eseguire il startcomando nel tuo esempio mi darà davvero un terminale Git Bash in quella directory. Sei sicuro di non fare un cd $HOME(o cdsenza argomenti) da qualche parte nei tuoi file bash rc? (Come .bashrc, .profile, ...) Anche tenere a mente la lettera di unità. Se vuoi avviare Git Bash sul X:disco, farlo cd x:\pathnon lo taglierà, devi farlo x:e poi cd \pathprimastart
Janos

1
Hai ragione! Mi mancava il fatto che non puoi semplicemente cd x:\path. Modificherò la mia soluzione di conseguenza.
holocronweaver

Una soluzione perfetta! Vorrei solo aggiungere che le cmd.exeimpostazioni predefinite non sono le stesse, come le impostazioni predefinite di Git Bash durante l'installazione di Git Bash! E devi capire le differenze tra le impostazioni predefinite ( Defaultsdal menu contestuale) e quella corrente ( Properties). Quindi, quello che ho fatto è stato: (1) aprire Git Bash, selezionare Properties(impostazioni correnti), (2) modificarlo, esattamente quello che voglio (carattere, dimensione della finestra + posizione), (3) aprire cmd.exe, selezionare Defaults, (4 ) copia-incolla le impostazioni da Git Bash a cmd.exe. Poi OKin cmd.exe"Impostazioni, Cancelin Git Bash" Impostazioni di e voilà!
trejder

48

Prova l'opzione --cd =. Supponendo che il tuo GIT Bash risieda in C: \ Programmi \ Git, sarebbe:

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

Se utilizzato all'interno della chiave di registro, il parametro cartella può essere fornito con% 1:

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


Come utilizzerei il %1parametro del registro?
Erasmus Cedernaes

1
la risposta attuale è così obsoleta, questa dovrebbe essere quella giusta!
Küzdi Máté

Questo sembra essere un file batch. (.bat)
Franta

26

Aggiungiamo ancora la risposta di @Drew Noakes:

Bersaglio:

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

Il cdparametro dovrebbe essere una delle opzioni su come specificare la directory di lavoro.

Notare anche che non ho alcun --loginparametro lì: invece, utilizzo un'altra app extra, dedicata solo alle chiavi SSH: Pageant (agente di autenticazione PuTTY) .

Inizia in:

C:\GitRepo

Allo stesso modo possibile, come @Drew Noakes ha menzionato / mostrato qui prima, lo uso anch'io.

Tasto di scelta rapida:

Ctrl + Alt + B

Tali scorciatoie sono un'altra caratteristica meno conosciuta di Windows. Ma c'è una restrizione: affinché il collegamento abbia effetto, deve essere posizionato da qualche parte nella sottodirectory dell'utente: il desktop va bene.

Se non vuoi che sia visibile, ma ancora attivabile, metti questo .lnkfile, cioè nella cartella di avvio rapido, poiché quella directory è destinata a tali scorciatoie. (indipendentemente dal fatto che sia visualizzato sul desktop) # 76080 # 3619355

"\Application Data\Microsoft\Internet Explorer\Quick Launch\"

14

Inoltre, Win10 ti offre un'opzione per aprire git bash dalla tua directory di lavoro facendo clic con il tasto destro sulla cartella e selezionando GitBash qui.

inserisci qui la descrizione dell'immagine


4

Windows 10

Questa è fondamentalmente la risposta di @ lengxuehx, ma aggiornata per Win 10 e presume che l'installazione di bash provenga da Git Bash per Windows dai download ufficiali di git .

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

Ho finito per usarlo dopo aver perso le mie voci del menu contestuale per Git Bash come comando da eseguire dalle impostazioni del registro. Nel caso fossi curioso, ho fatto questo:

  1. Crea una nuova chiave chiamata Bashnella shellchiave inHKEY_CLASSES_ROOT\Directory\Background\shell
  2. Aggiungi un valore di stringa a Icon(non una nuova chiave!) Che è il percorso completo di git-bash.exe, inclusa la parte git-bash.exe. Potrebbe essere necessario racchiuderlo tra virgolette.
  3. Modifica il valore predefinito di Bashal testo che desideri utilizzare nel menu contestuale inserisci qui la descrizione dell'immagine
  4. Aggiungi una sottochiave a Bashchiamatocommand
  5. Modifica commandil valore predefinito dicmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit inserisci qui la descrizione dell'immagine

Quindi dovresti essere in grado di chiudere il registro e iniziare a utilizzare Git Bash da qualsiasi punto che sia una directory reale. Ad esempio, This PCnon è una vera directory.

inserisci qui la descrizione dell'immagine


3
Per la cronaca, la voce git bash predefinita all'interno del registro in HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell\commandè"C:\Program Files\Git\git-bash.exe" "--cd=%v."
Ferrybig

Bello! Grazie, @Ferrybig! ^ _ ^
kayleeFrye_onDeck

4

Questo è il comando che può essere eseguito direttamente in Run dialog box(la scorciatoia è win+ R) e funziona bene anche salvato come .batscript:

cmd /c (start /d "/path/to/dir" bash --login) && exit

1
esegue il nuovo cmd in Windows 10
kyb

1
@kyb dovrebbe essere /bper Win 10
kayleeFrye_onDeck

@kyb Ho fatto una risposta che è una modifica della risposta di lengxuehx, nel caso in cui tu o chiunque altro è ancora interessato: stackoverflow.com/a/39779451/3543437
kayleeFrye_onDeck

3

Non ho familiarità con Git Bash ma supponendo che si tratti di una shell git (come git-sh) residente /path/to/my/gitshelle il tuo programma terminale preferito si chiama `myterm 'puoi scrivere quanto segue:

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

Si noti che il parametro -eper l'esecuzione può essere denominato in modo diverso con il proprio programma terminale preferito.


Grazie, la tua risposta mi ha fatto pensare nella giusta direzione! È così che faccio le cose in Linux, ma non sono riuscito a trovare l'equivalente in MS Windows ... fino ad ora! Per Git Bash, mytermè cmd.exe con aggiunte tramite MSYS / MinGW. Per avviare un nuovo cmd, si utilizza il startcomando specifico di Windows seguito dal percorso di Git Bash sh.exee quindi qualsiasi opzione della riga di comando che ti piace. La mia risposta fornisce dettagli.
holocronweaver

-1

Potrei dare una direzione sbagliata, ma mi piace questo trucco.

Utilizzando Windows Explorer, puntando a una directory qualsiasi, digitare "cmd" nella barra degli indirizzi si aprirà il prompt dei comandi di Windows in quella directory.

Se hai la directory "Git" nel tuo percorso, allo stesso modo, puoi digitare "git-bash" nella barra degli indirizzi e una Git Shell si aprirà in quella directory.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.