Git Sync com GitHub

1 min

Índice

  1. Sync Local ↔ GitHub
  2. Setup rápido
  3. Push/Pull Workflow
  4. Gestão de conflitos
  5. Comandos essenciais

1. Sync Local ↔ GitHub

Objetivo: manter o seu código local sincronizado com o GitHub.

O problema:

  • Codifica localmente
  • A equipa modifica no GitHub
  • Como se manter atualizado?

A solução: Push (você → GitHub) e Pull (GitHub → você)

Voltar ao índice

2. Setup rápido

bash
mkdir demo-github-sync && cd demo-github-sync
git init

echo "print('v1')" > app.py
echo "# Demo GitHub Sync" > README.md
git add . && git commit -m "Initial commit"

# Ligar ao GitHub (substitua pelo seu repo)
git remote add origin https://github.com/ton-username/demo-repo.git

# Primeiro push
git push -u origin main

É tudo! O seu código está no GitHub.

Voltar ao índice

3. Push/Pull Workflow

Cenário típico:

Push: você → GitHub

bash
# Modifica localmente
echo "print('v2 updated')" > app.py
git add . && git commit -m "Update to v2"

# Enviar para o GitHub
git push origin main

Pull: GitHub → você

bash
# Obter as alterações da equipa
git pull origin main

# Ou em 2 etapas:
git fetch origin    # Descarregar sem fundir
git merge origin/main    # Fundir a seguir

Workflow quotidiano

bash
# Manhã: obter o trabalho da equipa
git pull

# Dia: desenvolve
echo "print('new feature')" >> app.py
git add . && git commit -m "Add feature"

# Noite: enviar o seu trabalho
git push

Voltar ao índice

4. Gestão de conflitos

Conflito = você e um colega modificam a mesma linha.

Simulação de conflito:

bash
# O seu colega modificou app.py no GitHub
# Você também localmente
echo "print('my version')" > app.py
git add . && git commit -m "My changes"

git pull    # CONFLITO!

Resolução:

bash
# O Git mostra o conflito em app.py:
# <<<<<<< HEAD
# print('my version')
# =======
# print('colleague version')  
# >>>>>>> abc123

# Edite o ficheiro para ficar com o que quer:
echo "print('merged version')" > app.py

# Finalizar a resolução:
git add app.py
git commit -m "Resolve conflict"
git push

Conflito resolvido! A equipa obtém a sua versão fundida.

Voltar ao índice

5. Comandos essenciais

ComandoAção
git clone <url>Copiar um repo GitHub
git remote add origin <url>Ligar ao GitHub
git push -u origin mainPrimeiro push (com tracking)
git pushEnviar os seus commits
git pullObter + fundir
git fetchObter sem fundir
git statusVer o estado da sync

Workflow de base:

  1. git pull (obter)
  2. Desenvolver + git add + git commit
  3. git push (partilhar)
  4. Repeat!

GitHub sync = respiração do programador: pull → code → push!

Voltar ao índice