Git
Configuração inicial
Execute uma única vez ao configurar o ambiente:
Define o nome do autor dos commits:
Define o e-mail do autor dos commits:
Inicialização
Inicializa um repositório local:
Clona um repositório remoto:
Fluxo de Trabalho Completo
Ordem recomendada
status → add → commit → push
1. Atualizar o Projeto Local
Antes de iniciar qualquer tarefa você deve ir para a branch main
Verificar estado do repositório
Resultado esperado:
2. Criar Nova Branch
Sempre criar branches a partir da main atualizada.
Exemplo de feature:
3. Desenvolver a Funcionalidade
Durante o desenvolvimento:
- realizar commits pequenos;
- testar frequentemente;
- evitar mudanças muito grandes.
Verificar alterações. Certifique-se que não foram alterados documentos que não estavam dentro do seu escopo de trabalho.
Adicionar arquivos — adicionar tudo:
Adicionar arquivo específico:
Criar commit:
4. Enviar Branch para o GitHub
5. Abrir Pull Request
Após o push, acessar o GitHub, abrir Pull Request e selecionar:
Base main > Compare feat/login-social
Fluxo de Trabalho Completo
flowchart TB
A(["`**Início**`"]) --> B["`**git switch main**`"]
B --> S["`**git status**`"]
S --> C["`**git switch -c<br>feat/nova-feature**`"]
C --> D["`**Desenvolver<br>commits pequenos · testar**`"]
D --> E1["`**git add .<br>(todos os arquivos)**`"]
D --> E2["`**git add caminho/arquivo.py<br>(um arquivo específico)**`"]
E1 --> F["`**git commit -m 'mensagem'**`"]
E2 --> F
F --> G["`**git push origin<br>feat/nova-feature**`"]
G --> H["`**Abrir Pull Request no GitHub<br>Base: main · Compare: feat/nova-feature**`"]
H --> I(["`**Fim**`"])
A:::terminal
B:::git
S:::git
C:::git
D:::etapa
E1:::git
E2:::git
F:::git
G:::git
H:::etapa
I:::terminal
Histórico e inspeção
Exibe o histórico de commits:
Histórico resumido, uma linha por commit:
Mostra alterações ainda não adicionadas ao stage (alterações entre commits, entre um commit e a árvore de trabalho, etc):
Mostra alterações já no stage:
Desfazer alterações
Descarta as alterações feitas em um arquivo e restaura a versão do último commit:
Remove o arquivo do stage sem descartar as alterações:
Atenção
O git restore descarta mudanças não commitadas. Use com cuidado.
Branches
Lista as branches locais:
Lista branches locais e remotas:
Cria uma nova branch e muda automaticamente para ela:
Troca para outra branch:
Remove uma branch local que já foi mergeada:
Busca atualizações do repositório remoto, incluindo novas branches, sem alterar sua branch atual:
Sincronização com remoto
Baixa e aplica as alterações da branch remota:
Envia sua branch para o repositório remoto:
Baixa atualizações sem aplicar na branch atual:
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:
Entre na pasta do projeto:
Conecta o repositório original como upstream:
Confirma os remotes configurados:
Busca atualizações do repositório original:
Vai para a branch main local:
Aplica as atualizações do repositório original na sua 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:
Recupera as alterações guardadas: