Como posso iniciar uma nova janela do Git Bash com um diretório de trabalho especificado usando um script (Bash ou lote do Windows)?
Meu objetivo é lançar várias janelas Git Bash a partir de um único script, cada uma definida para um diretório de trabalho diferente. Dessa forma, posso começar a trabalhar rapidamente após inicializar o computador, em vez de ter que abrir as janelas do Git Bash e navegar cada uma até o diretório de trabalho correto.
Não estou perguntando como alterar o diretório de trabalho padrão, como esta pergunta faz, mas para lançar uma ou mais janelas de terminal com diferentes diretórios de trabalho de um script.
bash
shell
batch-file
git-bash
holocronweaver
fonte
fonte
Respostas:
Outra opção é criar um atalho com as seguintes propriedades:
O alvo deve ser:
Iniciar é a pasta na qual deseja que o prompt do Git Bash seja iniciado.
fonte
Start in
teve algo a ver com o diretório de trabalho em que um programa pensa que está.Git Bash usa
cmd.exe
para seu terminal mais extensões de MSYS / MinGW que são fornecidas porsh.exe
, uma espécie decmd.exe
invólucro. No Windows, você inicia um novo terminal usando ostart
comando.Assim, um script de shell que inicia um novo terminal Git Bash com um diretório de trabalho específico é:
(cd C:/path/to/dir1 && start sh --login) & (cd D:/path/to/dir2 && start sh --login) &
Um script de lote do 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
Para obter a mesma fonte e tamanho de janela que o Git Bash iniciado no menu iniciar, é mais fácil copiar as configurações de atalho do menu iniciar para os padrões do console de comando (para alterar os padrões, abra
cmd.exe
, clique com o botão esquerdo no ícone superior esquerdo e selecione Padrões).fonte
cd
para o diretório que desejo que o Git Bash inicie e, em seguida, executar ostart
comando em seu exemplo realmente me dará um terminal Git Bash nesse diretório. Tem certeza de que não está fazendocd $HOME
(oucd
sem args) em algum lugar de seus arquivos rc bash? (Como.bashrc
,.profile
...) Também tenha em mente a letra da unidade. Se você quiser iniciar o Git Bash naX:
unidade, entãocd x:\path
não vai resolver, você tem que fazerx:
ecd \path
antesstart
cd x:\path
. Editarei minha solução de acordo.cmd.exe
configurações padrão não são iguais às configurações padrão do Git Bash na instalação do Git Bash! E você tem que entender as diferenças entre as configurações padrão (Defaults
do menu de contexto) e as atuais (Properties
). Então, o que eu fiz foi: (1) abrir o Git Bash, selecionarProperties
(configurações atuais), (2) ajustá-lo exatamente para o que eu quero (fonte, tamanho da janela + posição), (3) abrircmd.exe
, selecionarDefaults
, (4 ) copiar e colar configurações do Git Bash paracmd.exe
. Em seguida,OK
emcmd.exe
'configurações,Cancel
emGit Bash
' configurações e voila!Experimente a opção --cd =. Supondo que seu GIT Bash resida em C: \ Arquivos de programas \ Git, seria:
"C:\Program Files\Git\git-bash.exe" --cd="e:\SomeFolder"
Se usado dentro da chave do registro, o parâmetro da pasta pode ser fornecido com% 1:
"C:\Program Files\Git\git-bash.exe" --cd="%1"
fonte
%1
parâmetro de registro?Vamos adicionar a resposta de @Drew Noakes:
Alvo:
"C:\Program Files\Git\git-bash.exe" --cd=C:\GitRepo
O
cd
parâmetro deve ser uma das opções de como especificar o diretório de trabalho.Observe também que não tenho nenhum
--login
parâmetro lá: em vez disso, uso outro aplicativo extra, dedicado apenas para chaves SSH: Pageant (agente de autenticação PuTTY) .Começar:
Da mesma forma possível, como @Drew Noakes mencionou / mostrou aqui antes, eu também uso.
Tecla de atalho:
Esses atalhos são outro recurso menos conhecido do Windows. Mas há uma restrição: para que o atalho tenha efeito, ele deve ser colocado em algum lugar do subdiretório do usuário: A área de trabalho está bem.
Se você não quiser que ele fique visível, mas ainda ativável, coloque este
.lnk
arquivo, ou seja, na pasta de inicialização rápida, pois esse diretório foi criado para esses atalhos. (independentemente de ser exibido na área de trabalho) # 76080 # 3619355"\Application Data\Microsoft\Internet Explorer\Quick Launch\"
fonte
Além disso, o Win10 oferece a opção de abrir o git bash em seu diretório de trabalho, clicando com o botão direito do mouse em sua pasta e selecionando GitBash aqui.
fonte
Windows 10
Esta é basicamente a resposta de @lengxuehx, mas atualizada para Win 10, e assume que a instalação do bash é do Git Bash para Windows dos downloads oficiais do git .
cmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit
Acabei usando isso depois que perdi meus itens do menu de contexto para Git Bash como meu comando para executar a partir das configurações do registro. Caso você esteja curioso sobre isso, eu fiz o seguinte:
Bash
nashell
chave emHKEY_CLASSES_ROOT\Directory\Background\shell
Icon
(não uma nova chave!) Que é o caminho completo para seu git-bash.exe, incluindo a parte git-bash.exe. Você pode precisar envolver isso entre aspas.Bash
do texto que deseja usar no menu de contextoBash
chamadocommand
command
o valor padrão de paracmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit
Então, você poderá fechar o registro e começar a usar o Git Bash de qualquer lugar que seja um diretório real. Por exemplo,
This PC
não é um diretório real.fonte
HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell\command
é"C:\Program Files\Git\git-bash.exe" "--cd=%v."
Este é o comando que pode ser executado diretamente no
Run dialog box
(o atalho é win+ R) e também funciona bem salvo como um.bat
script:cmd /c (start /d "/path/to/dir" bash --login) && exit
fonte
/b
para Win 10Não estou familiarizado com o Git Bash, mas presumindo que seja um shell git (como
git-sh
) residente/path/to/my/gitshell
e seu programa de terminal favorito se chama `myterm ', você pode fazer o seguinte script:(cd dir1; myterm -e /path/to/my/gitshell) & (cd dir2; myterm -e /path/to/my/gitshell) & ...
Observe que o parâmetro
-e
para execução pode ser nomeado de forma diferente com seu programa de terminal favorito.fonte
myterm
é cmd.exe com adições via MSYS / MinGW. Para iniciar um novo cmd, você usa ostart
comando específico do Windows seguido pelo caminho para o Git Bashsh.exe
e, em seguida, quaisquer opções de linha de comando que desejar. Minha resposta dá detalhes.Eu posso ter dado a direção errada, mas gosto desse truque.
Usando o Windows Explorer, apontando para qualquer diretório que você deseja, digite "cmd" na barra de endereço para abrir o prompt de comando do Windows nesse diretório.
Se você tem o diretório "Git" em seu caminho, da mesma forma, você pode digitar "git-bash" na barra de endereços e um Git Shell será aberto nesse diretório.
fonte