Fundamentos

Git Bash: o que é e como usar no Windows

Atualizado: · Skillaria.Top

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-agent e ssh-add já 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.

FerramentaO que éQuando usar
Git BashShell bash com utilitários Unix e GitTrabalho principal com Git, seguir instruções da internet
Git CMDO prompt de comando comum do Windows (cmd.exe) com o Git no PATHSe você está acostumado ao cmd e só precisa dos comandos git
Git GUICliente gráfico simples em Tcl/TkMontar um commit visualmente; pouco usado
PowerShell / cmdTerminais padrão do WindowsO 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.

WindowsGit 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 log e git diff abrem no less).
  • 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.

Aprenda este tema em vídeo

Este tema é abordado em profundidade, com prática, no curso “Git do zero ao desenvolvedor confiante”.

Ir para o curso