Qual é o significado exato do Git Bash?

94

Git Bash

Trabalho com o Git Bash há dois dias. Eu sei que agora as operações básicas tais como commit, push, pull, fetch, e merge. Mas eu ainda não sei o que o Git Bash em si realmente é!

Pesquisei muito sobre o Git Bash, mas todos os sites que vi se concentram na funcionalidade de seus comandos. Ainda não encontrei uma boa resposta para minha pergunta. Agora, eu acho, estou no lugar certo para obter esta resposta!

DRAJI
fonte
4
As pessoas também podem se interessar por minha pergunta sobre SuperUser O que é Git Bash para Windows?
geneorama
Não existe "Git bash". Existe "bash" e existe "git". Bash é um interpretador de linha de comando interativo, às vezes também chamado de "sh" ou "shell" por razões históricas, análogo ao "cmd" da Microsoft. Não é , no entanto, "shell git", que é um interpretador de comandos "bloqueado" usado para limitar o poder de acesso anônimo a servidores git, e é parte da distribuição git. Como o git foi desenvolvido em e para sistemas semelhantes ao UNIX, é melhor emparelhado com a CLI "bash", embora, em teoria, seja independente de shell.
Hatebit

Respostas:

78

git bash é um shell onde:

Consulte " Corrigir $HOMElocalização do msysGit Portable ":

Em um Windows 64:

C:\Windows\SysWOW64\cmd.exe /c ""C:\Prog\Git\1.7.1\bin\sh.exe" --login -i"

Isso difere de git-cmd.bat , que fornece comandos git em um prompt de comando simples do DOS.

Uma ferramenta como o GitHub para Windows (G4W) fornece shell diferente para git (incluindo um PowerShell)


Atualização de abril de 2015 :

Observação: o git bash em msysgit / Git para Windows 1.9.5 é antigo:

GNU bash, version 3.1.20(4)-release (i686-pc-msys)
Copyright (C) 2005 Free Software Foundation, Inc.

Mas com a eliminação do msysgit (quarto trimestre de 2015) e o novo Git para Windows (segundo trimestre de 2015), você agora tem o Git para Windows 2.3.5 .
Possui um bash muito mais recente, baseado no projeto 64bits msys2 , uma reescrita independente do MSYS, baseada no Cygwin moderno (camada de compatibilidade POSIX) e MinGW-w64 com o objetivo de melhor interoperabilidade com software Windows nativo. msys2vem com seu próprio instalador também.

O git bash agora é (com o novo Git para Windows):

GNU bash, version 4.3.33(3)-release (x86_64-pc-msys)
Copyright (C) 2013 Free Software Foundation, Inc.

Resposta original (junho de 2013) Mais precisamente, do wiki msygit :

Historicamente, o Git no Windows só era oficialmente compatível com o Cygwin.
Para ajudar a fazer uma versão nativa do Windows, este projeto foi iniciado, baseado no garfo mingw .

Para tornar a 'sopa' leitosa de nomes de projetos mais clara, dizemos assim:

  • msysGit - é o nome deste projeto, um ambiente de construção para Git para Windows, que lança os binários oficiais
  • MinGW - é um ambiente de desenvolvimento minimalista para aplicativos nativos do Microsoft Windows.
    É realmente uma camada de tempo de compilação muito fina sobre o Microsoft Runtime; Os programas MinGW são, portanto, programas reais do Windows, sem conceito de caminhos de estilo Unix ou sutilezas POSIX, como uma fork()chamada
  • MSYS - é um sistema interpretador de linha de comando Bourne Shell, usado pelo MinGW (e outros), foi bifurcado no passado do Cygwin
  • Cygwin - um ambiente semelhante ao Linux, que era usado no passado para construir Git para Windows, hoje em dia não tem relação com msysGit

Portanto, a descrição de duas linhas sobre "git bash" é:

"Git bash " é um shell msys incluído no "Git para Windows" e é uma versão simplificada do Cygwin (uma versão antiga), cujo único propósito é fornecer uma camada POSIX suficiente para executar um bash.


Lembrete:

msysGit é o ambiente de desenvolvimento para compilar o Git para Windows. É completo, no sentido de que você só precisa instalar o msysGit, e então você pode construir o Git. Sem instalar nenhum software de terceiros.

msysGit não é Git para Windows; que é um instalador que instala Git - e apenas Git .

Veja mais em " Diferença entre msysgit e Cygwin + git? ".

VonC
fonte
2
Eu quero saber o significado disso!
DRAJI
@DRAJI, você quer dizer que minha resposta não cobriu o que você queria saber?
VonC
@DRAJI há mais algum detalhe que você gostaria de saber sobre " git bash"?
VonC
Claro. Mas, antes de mais nada, quero saber apenas uma descrição de duas linhas sobre isso. Depois disso, darei o próximo passo.
DRAJI
3
por exemplo, qual é a diferença entre UNIX Bash e Git Bash?
Alexander Mills,
22

Acho que a pergunta que fez é (estava) pensando que git bash é um comando como git init ou git checkout . Git bash não é um comando , é uma interface . Também assumirei que o autor da pergunta não é um usuário Linux porque o bash é muito popular no mundo unix / linux. O nome "bash" é um acrônimo para " B ourne A gain SH ell". Bash é uma interface de comando somente de texto que possui recursos que permitem a execução de scripts automatizados. Uma boa analogia seria comparar o bash com o novo prompt de comando e os arquivos de comando .BAT (lote) da época do DOS e das primeiras versões do Windows. interface do PowerShell no Windows 7/8. Um pobreanalogia (mas que provavelmente será mais facilmente compreendida por mais pessoas) é a combinação do

REFERÊNCIAS:

O MEU
fonte
10

Bash é uma interface de linha de comando criada há mais de vinte e sete anos por Brian Fox como um substituto de software livre para o Bourne Shell. Um shell é um tipo específico de Interface de Linha de Comando. O Bash é um "código aberto", o que significa que qualquer pessoa pode ler o código e sugerir alterações. Desde o seu início, tem sido apoiado por uma grande comunidade de engenheiros que trabalharam para torná-lo uma ferramenta incrível. Bash é o shell padrão para Linux e Mac. Por essas razões, o Bash é o shell mais usado e amplamente distribuído.

O Windows tem uma interface de linha de comando diferente, chamada Prompt de comando. Embora tenha muitos dos mesmos recursos do Bash, o Bash é muito mais popular. Por causa da força da comunidade de código aberto e das ferramentas que ela fornece, dominar o Bash é um investimento melhor do que dominar o Prompt de comando.

Para usar o Bash em um computador Windows, precisamos baixar e instalar um programa chamado Git Bash. O Git Bash (é o Bash para windows) nos permite acessar facilmente o Bash assim como outra ferramenta chamada Git, dentro do ambiente Windows.

Juan Francisco Garcia Gonzalez
fonte
1
Como um aparte, a CLI atual para Windows é PowerShell. O antigo shell CMD baseado em DOS ainda está disponível para compatibilidade, mas a MSFT concentra toda sua atenção no PS. É muito bom, realmente, pegar os recursos orientados a tubos de shells baseados em Unix (bash, sh, csh, ksh, zsh, etc.) e estendê-los para permitir a passagem de objetos, em vez de apenas texto.
Peter Halverson
3

Em sua essência, Git é um conjunto de programas utilitários de linha de comando projetados para serem executados em um ambiente de linha de comando no estilo Unix. Os sistemas operacionais modernos, como Linux e macOS, incluem terminais de linha de comando Unix integrados. Isso torna o Linux e o macOS sistemas operacionais complementares ao trabalhar com Git. Em vez disso, o Microsoft Windows usa o prompt de comando do Windows, um ambiente de terminal não Unix.

O que é Git Bash?

Git Bash é um aplicativo para ambientes Microsoft Windows que fornece uma camada de emulação para uma experiência de linha de comando Git. Bash é um acrônimo para Bourne Again Shell. Um shell é um aplicativo de terminal usado para fazer interface com um sistema operacional por meio de comandos escritos. Bash é um shell padrão popular no Linux e macOS. Git Bash é um pacote que instala o Bash, alguns utilitários comuns do bash e o Git em um sistema operacional Windows.

fonte: https://www.atlassian.com/git/tutorials/git-bash

Abhijeet C'kar
fonte
2
"Git é um conjunto de programas utilitários de linha de comando projetados para executar em um ambiente de linha de comando no estilo Unix" ... verdade, e não é surpreendente, considerando que o Git foi criado por Linus Torvalds ( en.wikipedia.org/wiki/Linus_Torvalds )
VonC