Aprenda a controlar versões do seu código, trabalhar em equipe e contribuir para projetos open source com Git e GitHub.
Git é um sistema de controle de versão distribuído criado por Linus Torvalds em 2005. Ele rastreia mudanças no código, permitindo voltar a versões anteriores.
Permite que múltiplos desenvolvedores trabalhem no mesmo projeto simultaneamente, sem conflitos, através de branches e merges.
GitHub é uma plataforma de hospedagem de código que usa Git. Oferece colaboração, issues, pull requests e muito mais.
Um repositório (repo) é uma pasta onde o Git rastreia todas as mudanças. Pode ser local (no seu PC) ou remoto (GitHub).
Acesse git-scm.com e baixe a versão para Windows.
Aceite as configurações padrão (recomendado para iniciantes).
git --version
brew install git
xcode-select --install
sudo apt-get install git
sudo dnf install git
Antes de começar a usar o Git, configure seu nome e email. Essas informações aparecerão em cada commit que você fizer.
git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"
git config --list
git config --global core.editor "code --wait"
Cria um novo repositório Git na pasta atual.
git init
.git que contém todo o
histórico.
Copia um repositório remoto para sua máquina.
git clone https://github.com/usuario/repo.git
Mostra o estado atual do repositório.
git status
Adiciona arquivos à área de staging.
# Adicionar um arquivo específico git add arquivo.txt #
Adicionar todos os arquivos git add . # Adicionar por padrão git
add *.js
Salva as alterações em um ponto na história.
# Commit com mensagem git commit -m "Mensagem descritiva" #
Adicionar e commitar juntos git commit -am "Mensagem"
Envia commits locais para o repositório remoto.
# Push para origin main git push origin main # Push com
upstream (primeira vez) git push -u origin main
Baixa e integra mudanças do repositório remoto.
git pull origin main
git fetch + git merge.
Mostra o histórico de commits.
# Log completo git log # Log resumido git log --oneline # Log
com gráfico git log --oneline --graph --all
Branches permitem desenvolver features, corrigir bugs ou experimentar ideias em isolamento, sem afetar a branch principal.
# Listar branches git branch # Criar nova branch git branch
nome-da-branch # Deletar branch git branch -d
nome-da-branch
# Mudar para branch existente git checkout nome-da-branch git
switch nome-da-branch # Criar e mudar git checkout -b
nova-branch git switch -c nova-branch
# Primeiro, vá para a branch de destino git checkout main #
Depois, faça o merge git merge nome-da-feature
# Rebase da branch atual na main git rebase main # Rebase
interativo git rebase -i HEAD~3
Descartar mudanças em um arquivo que ainda não foi adicionado ao stage.
git checkout -- arquivo.txt # ou git restore arquivo.txt
Remover arquivo da área de staging, mantendo as mudanças.
git reset HEAD arquivo.txt # ou git restore --staged
arquivo.txt
Modificar o último commit (mensagem ou arquivos).
# Mudar mensagem do último commit git commit --amend -m "Nova
mensagem" # Adicionar arquivos ao último commit git add
arquivo.txt git commit --amend --no-edit
Criar um novo commit que desfaz um commit específico.
git revert <hash-do-commit>
Voltar o repositório para um estado anterior.
# Soft: mantém mudanças no stage git reset --soft HEAD~1 #
Mixed: mantém mudanças, remove do stage git reset --mixed HEAD~1
# Hard: descarta todas as mudanças git reset --hard HEAD~1
--hard é perigoso! Use com cuidado.
Salvar mudanças temporariamente para trabalhar em outra coisa.
# Guardar mudanças git stash # Listar stashes git stash list #
Recuperar último stash git stash pop # Recuperar stash
específico git stash apply stash@{0}
# Listar remotos git remote -v # Adicionar remoto git remote
add origin https://github.com/user/repo.git # Remover remoto git
remote remove origin # Renomear remoto git remote rename origin
upstream
Baixa mudanças do remoto sem mesclar.
# Baixar de todos os remotos git fetch --all # Baixar de origin
git fetch origin
# 1. Fork o repositório no GitHub # 2. Clone seu fork git clone
https://github.com/SEU-USER/repo.git # 3. Adicione o original
como upstream git remote add upstream
https://github.com/ORIGINAL/repo.git # 4. Crie uma branch git
checkout -b minha-feature # 5. Faça mudanças e commit git commit
-m "Minha contribuição" # 6. Push para seu fork git push origin
minha-feature # 7. Abra um Pull Request no GitHub
O arquivo .gitignore especifica quais arquivos e pastas o
Git deve ignorar. Coloque-o na raiz do projeto.
# Dependências node_modules/ # Logs logs/ *.log npm-debug.log*
# Ambiente .env .env.local # Build dist/ build/ # Sistema
.DS_Store Thumbs.db # IDE .vscode/ .idea/
# Byte-compiled __pycache__/ *.py[cod] *$py.class # Virtual
environments venv/ env/ .venv/ # IDEs .idea/ .vscode/ *.swp
*.swo # Testes .pytest_cache/ .coverage htmlcov/ # Distribuição
dist/ build/ *.egg-info/
Visite gitignore.io para gerar .gitignore para qualquer linguagem/framework!
✅ feat: add user authentication ✅ fix: resolve login redirect
issue ✅ docs: update README with install guide ❌ fixed stuff
❌ changes ❌ asdfgh
main - código em produçãodevelop - desenvolvimento ativofeature/* - novas funcionalidadesbugfix/* - correções de bugshotfix/* - correções urgentes--force em branches públicasgit init |
Criar repositório |
git clone <url> |
Clonar repositório |
git status |
Ver estado |
git add . |
Adicionar tudo |
git commit -m "" |
Commitar |
git push |
Enviar |
git pull |
Baixar e mesclar |
git branch |
Listar branches |
git branch <nome> |
Criar branch |
git checkout <nome> |
Mudar branch |
git merge <nome> |
Mesclar branch |
git branch -d <nome> |
Deletar branch |
git restore <file> |
Descartar mudanças |
git reset HEAD~1 |
Desfazer commit |
git revert <hash> |
Reverter commit |
git stash |
Guardar mudanças |
git log |
Ver histórico |
git log --oneline |
Log resumido |
git diff |
Ver diferenças |
git show <hash> |
Ver commit |
git remote -v |
Listar remotos |
git fetch |
Baixar mudanças |
git push -u origin main |
Primeiro push |