Ir para o conteúdo

Git

← Voltar ao guia


Configuração inicial

Execute uma única vez ao configurar o ambiente:

Define o nome do autor dos commits:

git config --global user.name "Seu Nome"

Define o e-mail do autor dos commits:

git config --global user.email "seu@email.com"


Inicialização

Inicializa um repositório local:

git init

Clona um repositório remoto:

git clone URL


Fluxo básico de trabalho

Ordem recomendada

statusaddcommitpush

Mostra o estado dos arquivos:

git status

Adiciona todas as alterações ao stage:

git add .

Adiciona um arquivo específico ao stage:

git add <nome-do-arquivo.txt>

Registra as alterações com uma mensagem:

git commit -m <"mensagem do commit">

Envia as alterações para o repositório remoto:

git push origin <minha-branch>


Histórico e inspeção

Exibe o histórico de commits:

git log

Histórico resumido, uma linha por commit:

git log --oneline

Mostra alterações ainda não adicionadas ao stage (alterações entre commits, entre um commit e a árvore de trabalho, etc):

git diff

Mostra alterações já no stage:

git diff --staged


Desfazer alterações

Descarta as alterações feitas em um arquivo e restaura a versão do último commit:

git restore <nome-do-arquivo.txt>

Remove o arquivo do stage sem descartar as alterações:

git restore --staged <nome-do-arquivo.txt>

Atenção

O git restore descarta mudanças não commitadas. Use com cuidado.


Branches

Lista as branches locais:

git branch

Lista branches locais e remotas:

git branch -a

Cria uma nova branch e muda automaticamente para ela:

git checkout -b <nome-da-branch>

Troca para outra branch:

git checkout <nome-da-branch>

Remove uma branch local que já foi mergeada:

git branch -d <nome-da-branch>

Busca atualizações do repositório remoto, incluindo novas branches, sem alterar sua branch atual:

git fetch


Sincronização com remoto

Baixa e aplica as alterações da branch remota:

git pull origin main

Envia sua branch para o repositório remoto:

git push origin <minha-branch>

Baixa atualizações sem aplicar na branch atual:

git fetch origin

Diferença entre fetch e pull

git fetch apenas baixa as atualizações do repositório remoto, sem alterar sua branch local. git pull baixa e aplica automaticamente.

O fetch é mais seguro para inspecionar o que mudou antes de integrar.


Fork e upstream

Fluxo para manter um fork atualizado com o repositório original.

Após criar o fork no GitHub (botão Fork), clone o seu fork:

git clone git@github.com:SEU-USUARIO/NOME-DO-REPOSITORIO.git

Entre na pasta do projeto:

cd <NOME-DO-REPOSITORIO>

Conecta o repositório original como upstream:

git remote add upstream git@github.com:USUARIO-ORIGINAL/NOME-DO-REPOSITORIO.git

Confirma os remotes configurados:

git remote -v

Busca atualizações do repositório original:

git fetch upstream

Vai para a branch main local:

git checkout main

Aplica as atualizações do repositório original na sua main:

git merge upstream/main

Como verificar

No GitHub, o repositório deve aparecer como forked from USUARIO-ORIGINAL/NOME-DO-REPOSITORIO.


Guardar trabalho temporariamente

Útil quando precisar trocar de branch sem commitar:

Guarda as alterações atuais temporariamente:

git stash

Recupera as alterações guardadas:

git stash pop