Git Bash: o que é e como usar no Windows
Git Bash é um terminal para Windows instalado junto com o Git for Windows que oferece um ambiente Unix familiar: o shell bash, os comandos ls, cd, cat, grep, ssh e o próprio Git. Ele serve para que os comandos do Git e as instruções da documentação funcionem no Windows exatamente como no Linux e no macOS.
O que é o Git Bash
Git Bash é um aplicativo para Windows instalado junto com o Git for Windows que abre uma janela de terminal com o shell bash. Dentro dele funcionam o próprio Git e um conjunto de utilitários Unix padrão: ls, cd, pwd, cat, grep, find, less, ssh, ssh-keygen, curl e outros.
Tecnicamente, é um port do ambiente MSYS2: os programas são compilados para Windows, mas se comportam como no Linux. A janela do terminal, por padrão, é o emulador MinTTY. Não é uma máquina virtual nem um Linux completo — para isso existe o WSL. O Git Bash é mais leve: abre na hora e trabalha direto com os arquivos do Windows.
Nas buscas ele às vezes aparece escrito como «git bush» — é a mesma coisa. Bash significa Bourne Again SHell e não tem nada a ver com arbustos (bush).
Para que usar Git Bash se já existem cmd e PowerShell
O Git funciona muito bem no PowerShell e no prompt de comando comum. Mas o Git Bash tem vantagens práticas, especialmente para iniciantes.
- Os mesmos comandos em todos os sistemas. A documentação do Git, as respostas em fóruns, as instruções do GitHub e os cursos escrevem comandos para bash. No Git Bash eles funcionam sem adaptação:
rm -rf build,cat ~/.ssh/id_ed25519.pub,export VAR=value. - Ferramentas de SSH prontas.
ssh-keygen,ssh-agentessh-addjá estão lá — a chave para o GitHub é criada em um minuto. - Informações do Git no prompt. O Git Bash mostra a branch atual direto na linha de comando, por exemplo
(main), e durante um merge —(main|MERGING). - Autocompletar. O Tab completa comandos do Git, nomes de branches e arquivos.
- Uma habilidade para o futuro. Servidores, containers Docker e CI rodam em Linux. Acostumado ao bash no Git Bash, você vai se sentir em casa num servidor.
Git Bash, Git CMD e PowerShell: qual a diferença
Depois de instalar o Git for Windows, aparecem vários itens no menu Iniciar, e isso confunde.
| Ferramenta | O que é | Quando usar |
|---|---|---|
| Git Bash | Shell bash com utilitários Unix e Git | Trabalho principal com Git, seguir instruções da internet |
| Git CMD | O prompt de comando comum do Windows (cmd.exe) com o Git no PATH | Se você está acostumado ao cmd e só precisa dos comandos git |
| Git GUI | Cliente gráfico simples em Tcl/Tk | Montar um commit visualmente; pouco usado |
| PowerShell / cmd | Terminais padrão do Windows | O Git funciona se na instalação foi escolhida a opção de PATH «from the command line and also from 3rd-party software» |
O Git CMD não é um programa à parte, e sim o cmd comum com o ambiente configurado. Os comandos do Git são os mesmos, mas ls, cat e grep não funcionam: no lugar deles há dir, type e findstr. Quem busca «git no cmd» geralmente quer saber justamente isso: como rodar git no prompt de comando padrão. A resposta é: sem nada especial, basta executar git status, desde que o Git esteja no PATH.
Como abrir o Git Bash
Pelo menu Iniciar
Digite «Git Bash» e abra o aplicativo. O terminal abre na pasta pessoal do usuário: /c/Users/Nome, que no bash é representada por ~.
Na pasta certa pelo menu de contexto
O jeito mais prático: no Explorador de Arquivos, clique com o botão direito num espaço vazio dentro da pasta do projeto e escolha «Open Git Bash here». No Windows 11 essa opção fica escondida em «Mostrar mais opções» (ou Shift + clique direito).
No terminal do VS Code
Abra o terminal (Ctrl + `), clique na seta ao lado do «+» e escolha Git Bash. Para que ele abra por padrão, execute o comando «Terminal: Select Default Profile» e selecione Git Bash.
No Windows Terminal
O Git for Windows pode adicionar sozinho um perfil do Git Bash ao Windows Terminal (é uma opção no assistente de instalação). Se o perfil não existir, crie um novo com o comando C:\Program Files\Git\bin\bash.exe -i -l.
Caminhos e arquivos: a principal diferença em relação ao Windows
No Git Bash, os caminhos seguem o estilo Unix. O drive C: vira /c, e as barras invertidas viram barras normais.
| Windows | Git Bash |
|---|---|
C:\Users\Anna\projects | /c/Users/Anna/projects |
D:\work | /d/work |
%USERPROFILE% | ~ ou $HOME |
Se o caminho tiver espaços, coloque-o entre aspas: cd "/c/Users/Anna/My Projects". Para abrir a pasta atual no Explorador, use explorer ., e no VS Code — code ..
Comandos básicos do Git Bash para iniciantes
Navegação e arquivos
pwd # onde eu estou
ls -la # lista de arquivos, incluindo ocultos (.git, .gitignore)
cd projects/site # entrar numa pasta
cd .. # subir um nível
mkdir new-app # criar uma pasta
touch index.html # criar um arquivo vazio
cat README.md # mostrar o conteúdo
rm file.txt # apagar um arquivo
rm -r old-folder # apagar uma pasta com tudo dentro
clear # limpar a tela
O primeiro repositório direto no Git Bash
$ mkdir my-first-repo && cd my-first-repo
$ git init
Initialized empty Git repository in C:/Users/Anna/my-first-repo/.git/
$ echo "Olá, Git" > hello.txt
$ git add hello.txt
$ git commit -m "Adicionar hello.txt"
$ git log --oneline
Depois do git init, o prompt muda: aparece o nome da branch entre parênteses. É um jeito rápido de saber que você está dentro de um repositório.
Truques úteis
- Tab — autocompleta comandos, branches e arquivos. Aperte duas vezes para ver as opções.
- Seta para cima — comando anterior;
history— todo o histórico; Ctrl + R — busca no histórico. - Copiar/colar — no MinTTY, selecionar com o mouse já copia; para colar, Shift + Insert ou botão direito. Ctrl + C no terminal interrompe o comando, não copia.
- q — sai da visualização paginada (
git logegit diffabrem noless). - Esc, depois :q! e Enter — sai do Vim, se ele abriu para a mensagem de commit.
Git CLI: por que vale aprender a linha de comando
Git CLI é a interface de linha de comando do Git, ou seja, os próprios comandos git .... Clientes gráficos são práticos para ver o histórico, mas têm limites: nem todas as operações estão disponíveis, e quando algo dá errado o botão não explica o que está acontecendo. A linha de comando dá controle total e mensagens detalhadas.
Outro argumento: numa entrevista ou numa equipe nova vão pedir para você mostrar como desfaz um commit ou resolve um conflito, e cada um usa uma GUI diferente. Os comandos são iguais em todo lugar. Uma boa estratégia é trabalhar na CLI e usar a GUI ou as ferramentas da IDE para ver diffs e histórico.
Personalizando o Git Bash
Aliases no ~/.bashrc
Ao iniciar, o Git Bash lê o ~/.bash_profile e o ~/.bashrc. Adicione atalhos lá:
alias gs='git status'
alias gl='git log --oneline --graph --all'
alias ll='ls -la'
Para aplicar sem reiniciar, rode source ~/.bashrc. Se ao abrir aparecer um aviso de que foi encontrado um .bashrc mas não um .bash_profile, o Git Bash cria o .bash_profile sozinho — é normal.
Aliases do próprio Git
Também dá para guardar aliases no Git, e aí eles funcionam em qualquer terminal:
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"
Agora git st e git lg funcionam tanto no Git Bash quanto no PowerShell.
Aparência
Fonte, tamanho, cores e transparência se ajustam com clique direito na barra de título da janela → Options. Para acentos e caracteres especiais, confira na seção Text se a codificação UTF-8 está selecionada.
Problemas comuns no Git Bash
Caracteres estranhos no lugar de letras acentuadas no git log
Geralmente resolve definir a codificação UTF-8 em Options → Text e adicionar ao ~/.bashrc a linha export LANG=pt_BR.UTF-8. Para nomes de arquivo com acentos no git status, rode git config --global core.quotepath false — senão eles aparecem como sequências escapadas, do tipo \303\247.
Programas interativos travam
Alguns programas de console (por exemplo, o interpretador Python ou o node sem argumentos) se comportam de forma estranha no MinTTY. Rode-os com winpty: winpty python, ou use o Git Bash dentro do Windows Terminal.
Caminhos viram algo esquisito
O MSYS converte automaticamente argumentos que parecem caminhos Unix em caminhos do Windows. Às vezes isso atrapalha, por exemplo ao passar /app para o docker run. A solução é dobrar a barra (//app) ou definir MSYS_NO_PATHCONV=1 para o comando.
«Permission denied (publickey)» no push
A chave SSH não foi criada ou não foi adicionada ao GitHub. Crie a chave no Git Bash com ssh-keygen -t ed25519 -C "you@example.com", adicione o conteúdo de ~/.ssh/id_ed25519.pub nas configurações do GitHub e teste com ssh -T git@github.com.
Git Bash ou WSL
O WSL é um Linux de verdade dentro do Windows, com sistema de arquivos e pacotes próprios. Ele é necessário se você desenvolve para Linux: roda Docker, compila, usa uma stack de servidor. O Git Bash é mais simples e leve, e para trabalhar com Git ele basta totalmente. O importante é não misturar: um repositório clonado dentro do WSL deve ser operado pelo Git do WSL, e um repositório no drive C:, pelo Git for Windows.
Resumo
O Git Bash é um terminal com bash e utilitários Unix que vem junto com o Git for Windows. Ele torna o Windows compatível com a documentação e as instruções do Git, traz SSH pronto e mostra a branch no prompt. O Git CMD é o mesmo Git no prompt de comando comum, sem comandos Unix. Para estudar e para o trabalho do dia a dia no Windows, escolha o Git Bash — no curso de Git ele é o terminal principal das aulas práticas.
Perguntas frequentes
O Git Bash é gratuito?
Sim, o Git Bash faz parte do Git for Windows e é distribuído gratuitamente sob licença aberta.
Dá para instalar o Git Bash separado do Git?
Não, o Git Bash só é instalado junto com o Git for Windows. Se o Git já está instalado, o Git Bash está no menu Iniciar.
Existe Git Bash para macOS e Linux?
Não existe um programa separado, nem é necessário: no macOS e no Linux o terminal nativo já trabalha com bash ou zsh e utilitários Unix.
Onde o Git Bash guarda a pasta pessoal e as configurações?
A pasta pessoal é C:\Users\Nome, acessível no bash como ~. Lá ficam também .bashrc, .bash_profile, .gitconfig e a pasta .ssh.
Dá para rodar arquivos .bat e .exe no Git Bash?
Sim, programas do Windows rodam pelo nome ou pelo caminho, por exemplo ./build.bat ou notepad file.txt.
Este tema é abordado em profundidade, com prática, no curso “Git do zero ao desenvolvedor confiante”.
Ir para o curso