// aula 01 · Git & GitHub · Curso em Vídeo

Introdução ao Git —
Controle de Versão


O que é Git e por que usar?

📸 Um sistema de fotos do seu projeto

O Guanabara explica que o Git é como tirar fotos do seu projeto ao longo do tempo. Cada "foto" é um commit — você pode voltar para qualquer momento, comparar versões e nunca perder trabalho. Sem Git, editar código é como editar um documento sem Ctrl+Z.

🌿 Git

  • Sistema de controle de versão distribuído
  • Criado por Linus Torvalds em 2005
  • Roda localmente no seu computador
  • Gratuito e open source
  • Usado por 94% dos desenvolvedores no mundo

🐙 GitHub

  • Plataforma online para hospedar repositórios Git
  • Fundado em 2008, comprado pela Microsoft em 2018
  • Adiciona colaboração, PRs, Issues, Actions...
  • Git ≠ GitHub — um é a ferramenta, o outro é o serviço
  • Alternativas: GitLab, Bitbucket

As 3 áreas do Git — conceito fundamental

🗺️ O mapa mental do Git

Antes de qualquer comando, é essencial entender onde os arquivos estão em cada momento. O Guanabara explica que o Git tem três áreas que os arquivos percorrem antes de serem salvos definitivamente.

📁

Working Directory

Onde você edita os arquivos. As mudanças aqui ainda não foram registradas pelo Git.

📦

Staging Area

A "área de preparação". Você escolhe quais mudanças vão para o próximo commit.

🗄️

Repository (.git)

O banco de dados do Git. Cada commit aqui é permanente e tem um hash único.

# Working Directory → Staging Area
git add arquivo.txt     # adiciona um arquivo
git add .              # adiciona tudo de uma vez

# Staging Area → Repository
git commit -m "mensagem" # salva no repositório local

Instalação e configuração inicial

🪟 Windows

Baixe o instalador em git-scm.com. Durante a instalação, deixe o Git Bash marcado. Após instalar, abra o Git Bash para usar os comandos.

🐧 Linux / macOS

Linux: sudo apt install git
macOS: brew install git
Ou pelo Xcode Command Line Tools.

⚙️ Configuração obrigatória — faça uma vez só

Antes do primeiro commit, você precisa dizer ao Git quem você é. Essa informação fica em todo commit que você fizer.

# Configuração global (feita uma vez por máquina)
git config --global user.name  "Lucilia Rosa"
git config --global user.email "lucilia@email.com"
git config --global core.editor "code --wait"  # VS Code como editor

# Ver todas as configurações
git config --list

# Verificar versão instalada
git --version

Criando seu primeiro repositório

# Criar pasta e entrar nela
mkdir meu-projeto
cd meu-projeto

# Inicializar o repositório Git (cria a pasta .git)
git init

# Ver o status atual do repositório
git status

# Ver o histórico de commits
git log
git log --oneline           # versão compacta
git log --oneline --graph   # com gráfico de branches

Comandos de navegação e inspeção

# Ver diferenças ainda não adicionadas ao staging
git diff

# Ver diferenças já no staging (prontas para commit)
git diff --staged

# Ver detalhes de um commit específico
git show <hash>

# Desfazer mudanças no working directory (antes do add)
git restore arquivo.txt

# Retirar do staging (depois do add, antes do commit)
git restore --staged arquivo.txt

# Ignorar arquivos — crie um .gitignore
echo "node_modules/" >> .gitignore
echo "*.pyc"         >> .gitignore
echo ".env"          >> .gitignore

📄 .gitignore — o que NÃO versionar

Arquivos como senhas (.env), dependências (node_modules/), arquivos compilados (*.pyc) e configurações locais de IDE nunca devem ser commitados. O .gitignore diz ao Git para ignorá-los. O site gitignore.io gera o arquivo pronto para cada linguagem.