Resumo
Você está correto, Git Bash para Windows não é apenas bash compilado para Windows. É um pacote que contém bash (que é um shell de linha de comando ) e uma coleção de outros utilitários * nix separados, como ssh , scp , cat , find e outros (que você executa usando o shell), compilados para o Windows e uma nova janela de terminal de linha de comandos chamada mintty .
Em poucas palavras
No Windows, você pode executar comandos como ipconfig /all ou format G: usando cmd.exe . Esses comandos são arquivos executáveis reais em C:\Windows\system32 , armazenados como ipconfig.exe e format.com files. cmd.exe é separado de ambos e carrega e os executa a pedido do usuário.
ssh , scp , cat , find são executados usando bash exatamente da mesma maneira. Eles geralmente são armazenados em /usr/bin em vez de C:\Windows\system32 em sistemas nix, porque o Windows e o * nix têm sua estrutura de arquivos de sistema organizada de maneira diferente.
No caso do Git Bash para Windows, esses programas estão localizados na pasta de instalação do Git: C:\Program Files\Git\usr\bin , que também pode ser encontrado no ambiente Linux emulado em /usr/bin .
Assim como ser capaz de rodar cmd.exe no * nix não permite que você faça muito sem os outros utilitários do sistema, apenas ser capaz de executar o Bash no Windows também não é muito útil. Isso significa que todos esses comandos extras precisam ser empacotados junto com o Bash para criar um pacote de software utilizável.
Detalhes: aplicativos POSIX no Windows
Normalmente, esses comandos extras seriam encontrados nos sistemas * nix e não no Windows, porque foram programados contra a API de programação POSIX (que é o que * nix usa) e não as APIs do Win32 (que é o que o Windows usa) . A documentação da API do POSIX está disponível abertamente, então algumas pessoas a transportaram para outros sistemas, incluindo o Windows. A implementação do Windows de APIs / bibliotecas POSIX é fornecida por Cygwin e MSYS .
Isso é semelhante ao que o projeto Wine faz, mas converte o POSIX- > Windows em vez do Windows- > POSIX como o Wine faz.
menta
mintty está incluído porque cmd.exe , a janela padrão da linha de comando do Windows, está faltando alguns recursos importantes que normalmente estão disponíveis na maioria dos sistemas * nix. Na maioria dos casos, mintty é uma opção melhor para executar comandos (certamente para os utilitários fornecidos com o pacote Git Bash for Windows), mas ocasionalmente um aplicativo do sistema Windows pode funcionar melhor com cmd.exe .