Remote branch = uma branch que existe no servidor remoto (GitHub, GitLab, etc.).
Conceito-chave:
Analogia: é como ter uma cópia local do livro da biblioteca.
mkdir demo-remote && cd demo-remote
git init && echo "print('main')" > app.py
git add . && git commit -m "Initial commit"
# Acrescentar remote (simula GitHub)
git remote add origin https://github.com/user/repo.git
# Criar branch que faz tracking de uma remote
git checkout -b feature-login
echo "print('login')" > login.py
git add . && git commit -m "Add login"
# Push E criar o tracking
git push -u origin feature-login
# Verificar o tracking
git branch -vv # Ver que branches fazem tracking de quêResultado: a sua branch local feature-login segue origin/feature-login.
Obter as atualizações sem fundir:
git fetch origin # Descarrega as alterações
git status # Ver se a sua branch está atrasada
git log --oneline origin/main # Ver os novos commits remotosObter E fundir:
git pull origin main # = git fetch + git merge
# Ou para a sua branch com tracking:
git pull # Mais simplesEnviar as suas alterações:
git push # Se a branch tem tracking
git push origin feature-login # ExplícitoVer todas as branches (locais + remotos):
git branch -a # Todas as branches
git branch -r # Só as remotas
git remote show origin # Detalhes do remoteApagar uma branch remota:
git push origin --delete feature-old # Apagar no servidor
git branch -d feature-old # Apagar localmente
git fetch --prune # Limpar as referênciasCriar branch local a partir de uma remota:
git checkout -b local-name origin/remote-name
# Ou mais simples:
git checkout remote-name # Cria automaticamente o tracking| Comando | Ação |
|---|---|
git fetch | Obter atualizações sem fundir |
git pull | Obter + fundir |
git push -u origin <branch> | Enviar + criar tracking |
git branch -vv | Ver o estado do tracking |
git remote show origin | Informações detalhadas do remote |
git push origin --delete <branch> | Apagar branch remota |
git fetch --prune | Limpar referências mortas |
Remote branches = coordenação em equipa. Dominar isto = trabalho fluido!