Comment lancer une fenêtre Git Bash avec un répertoire de travail particulier à l'aide d'un script?

86

Comment puis-je lancer une nouvelle fenêtre Git Bash avec un répertoire de travail spécifié à l'aide d'un script (Bash ou Windows batch)?

Mon objectif est de lancer plusieurs fenêtres Git Bash à partir d'un seul script, chacune définie dans un répertoire de travail différent. De cette façon, je peux rapidement me mettre au travail après avoir démarré l'ordinateur au lieu d'avoir à ouvrir les fenêtres Git Bash et à naviguer chacune dans le bon répertoire de travail.

Je ne demande pas comment changer le répertoire de travail par défaut, comme le fait cette question , mais pour lancer une ou plusieurs fenêtres de terminal avec différents répertoires de travail à partir d'un script.

holocronweaver
la source
1
@StevenVascellaro Question éditée pour expliquer pourquoi ce n'est pas une dupe.
holocronweaver
Ça a du sens. J'ai retiré mon vote en double.
Stevoisiak

Réponses:

62

Une autre option consiste à créer un raccourci avec les propriétés suivantes:

entrez la description de l'image ici

La cible doit être:

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

Démarrer est le dossier dans lequel vous souhaitez que l'invite Git Bash se lance.

Drew Noakes
la source
1
Gloire! Je Start inn'ai jamais su avoir quelque chose à voir avec le répertoire de travail dans
lequel
C'est la méthode la plus simple. Ensuite, j'ai épinglé ce raccourci vers la barre des tâches puis Windows + 1, je le garde comme premier élément de la barre des tâches, ouvre directement le repo avec git-bash.
Hareen Laks le
48

Git Bash utilise cmd.exepour son terminal des extensions de MSYS / MinGW qui sont fournies par sh.exe, une sorte de cmd.exewrapper. Sous Windows, vous lancez un nouveau terminal à l'aide de la startcommande.

Ainsi, un script shell qui lance un nouveau terminal Git Bash avec un répertoire de travail spécifique est:

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

Un script batch Windows équivalent est:

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 

Pour obtenir la même police et la même taille de fenêtre que Git Bash lancé à partir du menu Démarrer, il est plus simple de copier les paramètres du raccourci du menu Démarrer dans les paramètres par défaut de la console de commande (pour modifier les paramètres par défaut, ouvrez cmd.exe, cliquez avec le bouton gauche sur l'icône en haut à gauche et sélectionnez Valeurs par défaut).

holocronweaver
la source
1
Cela fonctionne pour moi: cddans le répertoire que je veux que Git Bash démarre, puis exécuter la startcommande dans votre exemple me donnera vraiment un terminal Git Bash dans ce répertoire. Êtes-vous sûr de ne pas faire un cd $HOME(ou cdsans argument) quelque part dans vos fichiers bash rc? (Comme .bashrc, .profile, ...) Gardez également à l' esprit la lettre de lecteur. Si vous voulez démarrer Git Bash sur le X:lecteur, le faire cd x:\pathne le coupera pas, vous devez le faire x:et puis cd \pathavantstart
janos
1
Tu as raison! Je manquais le fait que vous ne pouvez pas simplement cd x:\path. Éditera ma solution en conséquence.
holocronweaver
Une solution parfaite! Permettez-moi seulement d'ajouter que les cmd.exeparamètres par défaut ne sont pas les mêmes que les paramètres par défaut de Git Bash lors de l'installation de Git Bash! Et vous devez comprendre les différences entre les paramètres par défaut (à Defaultspartir du menu contextuel) et l'actuel ( Properties). Donc, ce que j'ai fait était: (1) ouvrir Git Bash, sélectionner Properties(paramètres actuels), (2) le modifier, exactement, ce que je veux (police, taille de la fenêtre + position), (3) ouvrir cmd.exe, sélectionner Defaults, (4 ) copiez-collez les paramètres de Git Bash vers cmd.exe. Puis OKdans cmd.exeles paramètres, Canceldans Git Bashles paramètres de et le tour est joué!
trejder
48

Essayez l'option --cd =. En supposant que votre GIT Bash réside dans C: \ Program Files \ Git, ce serait:

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

S'il est utilisé dans la clé de registre, le paramètre de dossier peut être fourni avec% 1:

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

Mike Kowalski
la source
Comment utiliser le %1paramètre de registre?
Erasmus Cedernaes
1
La réponse actuelle est tellement obsolète, celle-ci devrait être la bonne!
Küzdi Máté
Cela semble être pour un fichier batch. (.bat)
Franta
26

Ajoutons encore à la réponse de @Drew Noakes:

Cible:

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

Le cdparamètre doit être l'une des options permettant de spécifier le répertoire de travail.

Notez également que je n'ai aucun --loginparamètre là-bas: à la place, j'utilise une autre application supplémentaire, dédiée uniquement aux clés SSH: Pageant (agent d'authentification PuTTY) .

Commencez dans:

C:\GitRepo

De la même manière possible, comme @Drew Noakes l'a mentionné / montré ici plus tôt, je l'utilise aussi.

Touche de raccourci:

Ctrl + Alt + B

Ces raccourcis sont une autre fonctionnalité moins connue de Windows. Mais il y a une restriction: pour que le raccourci prenne effet, il doit être placé quelque part dans le sous-répertoire de l'Utilisateur: le bureau va bien.

Si vous ne voulez pas qu'il soit visible, mais toujours activable, placez ce .lnkfichier dans le dossier de lancement rapide, car ce répertoire est destiné à de tels raccourcis. (peu importe s'il est affiché sur le bureau) # 76080 # 3619355

"\Application Data\Microsoft\Internet Explorer\Quick Launch\"
Franta
la source
12

De plus, Win10 vous offre la possibilité d'ouvrir git bash à partir de votre répertoire de travail en cliquant avec le bouton droit sur votre dossier et en sélectionnant GitBash ici.

entrez la description de l'image ici

monkrus
la source
4

Windows 10

C'est essentiellement la réponse de @ lengxuehx, mais mise à jour pour Win 10, et cela suppose que votre installation bash provient de Git Bash pour Windows à partir des téléchargements officiels de git .

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

J'ai fini par l'utiliser après avoir perdu mes éléments de menu contextuel pour Git Bash comme commande à exécuter à partir des paramètres de registre. Au cas où vous seriez curieux, j'ai fait ceci:

  1. Créez une nouvelle clé appelée Bashdans la shellclé àHKEY_CLASSES_ROOT\Directory\Background\shell
  2. Ajoutez une valeur de chaîne à Icon(pas une nouvelle clé!) Qui est le chemin complet de votre git-bash.exe, y compris la partie git-bash.exe. Vous devrez peut-être mettre cela entre guillemets.
  3. Modifiez la valeur par défaut de Bashsur le texte que vous souhaitez utiliser dans le menu contextuel entrez la description de l'image ici
  4. Ajouter une sous-clé à Bashappelécommand
  5. Modifiez commandla valeur par défaut decmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit entrez la description de l'image ici

Ensuite, vous devriez être en mesure de fermer le registre et de commencer à utiliser Git Bash depuis n'importe où qui est un vrai répertoire. Par exemple, This PCn'est pas un vrai répertoire.

entrez la description de l'image ici

kayleeFrye_onDeck
la source
3
Pour mémoire, l'entrée git bash par défaut dans le registre HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell\commandest"C:\Program Files\Git\git-bash.exe" "--cd=%v."
Ferrybig
Agréable! Merci, @Ferrybig! ^ _ ^
kayleeFrye_onDeck
4

C'est la commande qui peut être exécutée directement dans Run dialog box(le raccourci est win+ R) et fonctionne également bien enregistrée en tant que .batscript:

cmd /c (start /d "/path/to/dir" bash --login) && exit
lengxuehx
la source
1
il exécute un nouveau cmd dans Windows 10
kyb
1
@kyb c'est censé être /bpour Win 10
kayleeFrye_onDeck
@kyb J'ai fait une réponse qui est une modification de la réponse de lengxuehx, au cas où vous ou quelqu'un d'autre serait toujours intéressé: stackoverflow.com/a/39779451/3543437
kayleeFrye_onDeck
3

Je ne suis pas familier avec Git Bash, mais en supposant qu'il s'agit d'un shell git (tel que git-sh) résidant dans /path/to/my/gitshellet que votre programme de terminal préféré s'appelle `myterm ', vous pouvez script ce qui suit:

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

Notez que le paramètre -ed'exécution peut être nommé différemment avec votre programme de terminal favori.

Marcus Rickert
la source
Merci, votre réponse m'a fait réfléchir dans la bonne direction! C'est comme ça que je fais les choses sous Linux, mais je n'ai pas pu trouver l'équivalent sous MS Windows ... jusqu'à présent! Pour Git Bash, mytermest cmd.exe avec des ajouts via MSYS / MinGW. Pour lancer une nouvelle cmd, vous utilisez la startcommande spécifique à Windows suivie du chemin vers Git Bash, sh.exepuis de toutes les options de ligne de commande que vous aimez. Ma réponse donne des détails.
holocronweaver
-1

J'ai peut-être donné une mauvaise direction, mais j'aime cette astuce.

À l'aide de l'Explorateur Windows, en pointant vers le répertoire de votre choix, tapez "cmd" dans la barre d'adresse, il ouvrira l'invite de commande Windows dans ce répertoire.

Si vous avez le répertoire "Git" dans votre chemin, de la même manière, vous pouvez taper "git-bash" dans la barre d'adresse et un shell Git s'ouvrira dans ce répertoire.

Adauto Bronzatti
la source