Como adicionar mais comandos ao Git Bash?

45

Eu estou trabalhando na máquina windows e eu uso o shell bash que vem com o Git. Mas existem muitos utilitários que estão faltando nesta versão do bash shell.

Como posso instalar mais comandos neste shell?

    
por Ankit Zalani 13.01.2014 / 18:44

8 respostas

13

Existem duas versões do Git que você provavelmente usará - a distribuição msysgit ou Cygwin .

Instalando utilitários adicionais para o Cygwin

Embora você possa ter instalado apenas o Git como parte da instalação do Cygwin (se você usou o Cygwin), o Cygwin tem um programa chamado configuração .exe que você pode usar para adicionar pacotes. Essencialmente, tudo o que você precisa fazer é executar setup.exe e escolher quais programas você deseja instalar quando chegar à janela Selecionar Pacotes . A introdução aqui fornece uma boa visão geral com imagens que detalham o processo.

O instalador do Cygwin é inteligente o suficiente para descobrir que você tem uma instalação preexistente, e ele adicionará pacotes à sua instalação (ao invés de usar nuking e começar de novo).

MSYS

A outra versão do Git que você provavelmente está usando (se não o Cygwin) é msysgit. Como o msysgit instala um ambiente Unix mínimo que não é realmente compatível com o MinGW, você terá que instalar o pacote MinGW ao lado do msysgit. A página Introdução do MinGW dá uma visão detalhada de como instalar o MinGW - já que não tenho experiência com o MinGW pessoalmente , tudo que eu posso fazer é encaminhá-lo para as instruções deles.

Você terá que migrar sua instalação do msysgit para o MinGW. Isso pode ser feito fazendo o seguinte (retirado de aqui ). Após a seqüência seguinte, o MinGW deve encontrar sua instalação do Git.

cd GITDIR # Where GITDIR is wherever inside Program Files you put Git
cp bin/git* /MINGW/bin # Where MINGW is wherever you put MinGW
cp -r libexec/git* /MINGW/libexec
cp -r share/git* /MINGW/share
    
por 13.01.2014 / 19:53
4

Se você estiver usando msysgit, uma opção simples é simplesmente instalar o MinGW e, em seguida, adicionar o caminho MINGW ao .bashrc arquivo que você está usando para a sua instalação do Git:

    PATH=$PATH:/MINGW/msys/1.0/bin

... onde MINGW é onde você instalou o MinGW

Dessa forma você pode usar as ferramentas MinGW diretamente da sua instalação do Git bash, e se você precisar de outra ferramenta bash você pode simplesmente instalá-la no MinGW.

    
por 03.02.2016 / 19:35
1

Com as recentes instalações Git for Windows , instalar scripts e programas shell adicionais é muito fácil.

Eu recomendo instalar o git usando chocolatey choco install git , porque você pode atualizar o git (e todas as outras ferramentas instaladas com chocolatey) executando choco upgrade all .

Basta colocar os executáveis em C:\Program Files\Git\usr\bin ( %ProgramFiles%\Git\usr\bin ).

Exemplo para git-fresh

Copie o arquivo git-fresh para C:\Program Files\Git\usr\bin .

Exemplo para adr-tools

  1. Faça o download de um pacote zip da página de lançamentos
  2. Descompacte o pacote
  3. Copie tudo de src/ para C:\Program Files\Git\usr\bin
por 08.12.2017 / 09:13
0

Se estiver usando o Git bash para Windows (MinGW64), tive muita dificuldade em fazer com que o rsync fosse adicionado a ele. continuou recebendo erro: dup () in / out / err falhou

Em vez disso, usar o Cygwin funcionou eventualmente.

Passos que tomei para usar o rysnc no Gitbash for Windows

  1. Instalar o gitbash para janelas
  2. Instale o cygwin64
  3. Adicione o caminho cygwin à variável de caminho do Windows

    Windows-> System->advanced Setings->Environment Variables

    Add a path for C:\cygwin64\bin\

  4. Fechar e reabrir o gitbash Agora o gitbash vai encontrar o rsync.exe no cygwin \ bin
  5. Eu estava recebendo um erro de versão incompatível para cygwin1.dll

    *** fatal error - cygheap base mismatch detected

  6. Embora alguns tenham dito que uma reinicialização consertará isso, isso não aconteceu.
  7. Para resolver o erro de versão, copiei o diretório cygwin \ bin de uma versão mais antiga do cygwin - versão 1.7.30 trabalhada
por 27.07.2017 / 00:18
0

Pode-se estender o número de recursos no git-bash criando scripts e chamando-os definindo-os no arquivo ~/.bash_profile .

Exemplo

Se alguém quiser usar o comando watch , esse script pode ser adicionado ao ~/.bash_profile :

link

ARGS="${@}"
clear;
while(true); do
  OUTPUT='$ARGS'
  clear
  echo -e "${OUTPUT[@]}"
done

e envolva-o dentro de uma função:

watch() {
  ARGS="${@}"
  clear;
  while(true); do
    OUTPUT='$ARGS'
    clear
    echo -e "${OUTPUT[@]}"
  done
}

Assim que um salva o arquivo e executa source ~/.bash_profile , deve-se poder observar a saída dos comandos.

    
por 22.07.2018 / 16:07
0

Você pode fazer o download de unidades adicionais do Unix Wget, Hugo, Xpdf, make, Nano aqui: link

Wget

  • Faça o download do último binário do wget para windows em eternallybored (eles estão disponíveis como um zip com documentação ou apenas um exe)
  • Se você baixou o zip, extraia tudo (se o windows construído no utilitário zip der um erro, use 7-zip ) .
  • Renomeie o arquivo wget64.exe para wget.exe , se necessário.
  • Mova wget.exe para seu Git\mingw64\bin\ .

Nota: Eu observei alguns erros ao usar o Wget no Git Bash para criar arquivos WARC. Para um uso mais complexo do Wget, considere Cygwin em seu lugar.

Hugo

Hugo gerador de sites estáticos pode ser baixado como um binário e não tem um instalador. Soltá-lo no seu bin adiciona-o facilmente ao seu caminho do Git Bash. Pegue a versão de 64 bits do Windows na página de lançamentos . Descompacte o download e copie hugo.exe no diretório Git\mingw64\bin .

Xpdf

O

Xpdf é um prático utilitário para manipular arquivos PDF.

fazer

  • Vá para ezwinports .
  • Download make-4.1-2-without-guile-w32-bin.zip (obtenha a versão sem truques).
  • Extraia o zip.
  • Copie o conteúdo para seu Git\mingw64\ mesclando as pastas, mas NÃO substitua / substitua nenhum arquivo existente.

Nano

As of 2018, recent versions of Git Bash include Nano, so this is unnecessary!

  • Faça o download do binário Nano da página win32-support do Nano. Você só precisa do arquivo .exe , que é denominado nano-git-0d9a7347243.exe (no momento em que escrevo).
  • Renomeie o arquivo para nano.exe e copie para o diretório mingw64\bin .
  • Esta versão do Nano não funcionará apenas com o Git Bash, mas pode ser chamada usando winpty , por exemplo, winpty nano test.txt .
por 27.05.2018 / 19:48
0

install "Git for Windows SDK" (scroll to the bottom of https://gitforwindows.org/ which provides a link to download installer for it from https://github.com/git-for-windows/build-extra/releases/latest)

link

    
por 05.09.2018 / 13:45
0

I tried the following and installed emacs to git-bash.. 1. Install msys2 somewhere(does not have to be same computer). 2. Under msys2, run the following:

   cd /tmp
    mkdir -p var/lib
    cp -R /var/lib/pacman var/lib/
    pacman -Sr /tmp emacs
    tar zcf emacs.tar.gz usr
  1. Copy emacs.tar.gz to where you can access from git-bash, then under git-bash:

    tar zxf emacs.tar.gz -C / emacs

That's all, good luck.

Após o primeiro post, tentei outro computador, mas não estava funcionando. Acontece que algumas dlls estão faltando no git-bash. Então eu testei em uma máquina virtual limpa com os seguintes passos:

  1. Instale msys2-x86_64-20180531 e Git-2.19.1-64-bit .

  2. Atualize msys2, abra o console msys64 e execute:

    pacman -Syyu
    

    Feche o console msys64 quando solicitado e execute o comando acima novamente.

  3. Obtenha arquivos emacs como as etapas anteriores (execute o seguinte no msys64):

    cd /tmp
    mkdir -p var/lib
    cp -R /var/lib/pacman var/lib/
    pacman -Sr /tmp emacs
    tar zcf emacs.tar.gz usr
    mv emacs.tar.gz /c/tmp
    

    ps: Uma vez eu tentei as etapas acima em / d / tmp em vez de / tmp e não consegui instalar o emacs nele.

  4. Abra o git-bash e extraia os arquivos emacs:

    cd /c/tmp
    tar zxf emacs.tar.gz -C /
    

    Ele vai reclamar falta biblioteca compartilhada "?" em tentar executar o emacs agora. O "?" não será revelado para qualquer legível

  5. Volte para msys64 e obtenha as dlls do msys2:

    ls /bin/*.dll > /c/tmp/1.txt
    
  6. No git-bash compare dlls com msys:

    cd /c/tmp
    git init
    git add 1.txt && git commit
    ls /bin/*.dll | sed 's#\*$##g' > /c/tmp/1.txt
    git diff 1.txt | grep '^-' | sed '1d' | sed 's#^-/bin/##g' > diff_dlls.txt
    

    No meu caso, existem 26 dlls no diff_dlls.txt.

  7. Copie as dlls do msys64 para o git-bash:

    Em msys64:

    mkdir /c/tmp/dlls
    cat /c/tmp/diff_dlls.txt | xarg -I {} cp /bin/{} /c/tmp/dlls
    

    No git-bash:

    cp /c/tmp/dlls/* /bin
    
  8. Tudo pronto, agora o emacs é executado no git-bash. Algumas das 26 dlls podem não ser necessárias, mas eu prefiro economizar meu tempo em vez de espaço em disco.

por 29.10.2018 / 17:08