Skip to content

About

Comandos básicos para sincronizar repositório local com o github

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

Manual Completo do GitHub para Repositórios Pessoais

⚠️ Atenção: Este manual é otimizado para uso em repositórios pessoais com fluxo de trabalho individual.

Para trabalhos em equipe, será necessário incluir comandos adicionais de colaboração (branches, pull requests, merge, etc.).


📋 Índice

  1. Configuração Inicial da Chave SSH
  2. Criação e Inicialização do Repositório
  3. Fluxo de Trabalho Básico
  4. Operações de Sincronização
  5. Clonagem de Repositórios
  6. Comandos Úteis Adicionais

01 - Configuração da Chave SSH

A autenticação via SSH é mais segura e conveniente que HTTPS, pois não requer inserir senha a cada operação.

1.1 Verificar Chaves Existentes

Antes de gerar uma nova chave, verifique se já existe alguma:

ls -al ~/.ssh

O que procurar:

  • id_ed25519 e id_ed25519.pub (chaves Ed25519)
  • id_rsa e id_rsa.pub (chaves RSA - formato mais antigo)

1.2 Gerar Nova Chave SSH

ssh-keygen -t ed25519 -C "seu_email@example.com"

Explicação dos parâmetros:

  • -t ed25519: Define o tipo de criptografia (EdDSA - mais moderna e segura)
  • -C "email": Adiciona um comentário identificador à chave

Durante a geração:

  1. Enter file in which to save the key: Pressione Enter para usar o local padrão (~/.ssh/id_ed25519)
  2. Enter passphrase: Pressione Enter para sem senha OU digite uma senha para maior segurança
  3. Enter same passphrase again: Confirme a senha (ou pressione Enter novamente)

1.3 Iniciar o Agente SSH

O agente SSH gerencia suas chaves em memória:

eval "$(ssh-agent -s)"

Resultado esperado: Agent pid 12345 (o número será diferente)

1.4 Adicionar Chave ao Agente

ssh-add ~/.ssh/id_ed25519

Nota: Este comando adiciona a chave privada ao agente. A chave privada NUNCA deve ser compartilhada.

1.5 Copiar Chave Pública

cat ~/.ssh/id_ed25519.pub

Importante: Copie TODO o conteúdo exibido, incluindo:

  • O tipo de chave (ssh-ed25519)
  • A sequência de caracteres
  • Seu email no final

1.6 Adicionar Chave ao GitHub

  1. Acesse: github.com/settings/keys
  2. Clique em "New SSH key"
  3. Title: Dê um nome identificável (ex: "Notebook Pessoal - Debian")
  4. Key: Cole a chave pública copiada
  5. Clique em "Add SSH key"

1.7 Testar Conexão

ssh -T git@github.com

Resultado esperado:

Hi SEU_USERNAME! You've successfully authenticated, but GitHub does not provide shell access.

Se aparecer aviso sobre autenticidade do host:

  • Digite yes e pressione Enter
  • Isso adiciona o GitHub aos hosts conhecidos

📚 Documentação Oficial

Conectar-se ao GitHub com SSH


02 - Criação e Inicialização do Repositório

2.1 Criar Repositório no GitHub

  1. Acesse github.com/new
  2. Defina:
    • Repository name: Nome do projeto
    • Description: (Opcional) Descrição breve
    • Public/Private: Visibilidade do repositório
    • Initialize: NÃO marque nenhuma opção se for seguir os comandos abaixo

2.2 Cenário A: Projeto Novo (sem README remoto)

Use quando criar o repositório vazio no GitHub:

# Criar arquivo README inicial
echo "# Nome do Projeto" >> README.md
echo "Descrição do projeto..." >> README.md

# Inicializar repositório Git local
git init

# Adicionar README à staging area
git add README.md

# Fazer primeiro commit
git commit -m "first commit"

# Renomear branch para main (padrão atual)
git branch -M main

# Conectar ao repositório remoto
git remote add origin git@github.com:SEU_USUARIO/nome-repositorio.git

# Enviar para o GitHub
git push -u origin main

Explicação detalhada:

  • git init: Cria um novo repositório Git na pasta atual
  • git branch -M main: Renomeia a branch de "master" para "main"
  • git remote add origin: Adiciona o GitHub como repositório remoto
  • git push -u origin main: Envia commits e define "main" como branch padrão

2.3 Cenário B: Projeto Existente (com arquivos locais)

Use quando já tem arquivos locais e criou o repositório vazio no GitHub:

# Inicializar Git (se ainda não foi feito)
git init

# Adicionar todos os arquivos existentes
git add .

# Fazer commit inicial
git commit -m "Importação inicial do projeto"

# Renomear branch para main
git branch -M main

# Conectar ao repositório remoto
git remote add origin git@github.com:SEU_USUARIO/nome-repositorio.git

# Enviar para o GitHub
git push -u origin main

2.4 Cenário C: Repositório Remoto Já Criado com README

Se você marcou "Add a README file" ao criar o repositório:

# Clonar o repositório
git clone git@github.com:SEU_USUARIO/nome-repositorio.git

# Entrar na pasta
cd nome-repositorio

# Começar a trabalhar...

03 - Fluxo de Trabalho Básico

3.1 Verificar Status dos Arquivos

git status

Mostra:

  • Arquivos modificados (modified)
  • Arquivos novos não rastreados (untracked)
  • Arquivos na staging area (staged)
  • Branch atual

3.2 Adicionar Arquivos à Staging Area

# Adicionar arquivo específico
git add nome-do-arquivo.txt

# Adicionar vários arquivos específicos
git add arquivo1.txt arquivo2.js

# Adicionar todos os arquivos modificados e novos
git add .

# Adicionar todos os arquivos de uma extensão
git add *.py

3.3 Fazer Commit

# Commit básico
git commit -m "Mensagem descritiva da alteração"

# Commit com descrição detalhada
git commit -m "Título breve" -m "Descrição mais detalhada das alterações realizadas"

Boas práticas para mensagens de commit:

  • Use verbos no imperativo: "Adiciona", "Corrige", "Atualiza"
  • Seja específico: "Corrige bug na validação de email" > "Correções"
  • Primeira linha até 50 caracteres
  • Deixe uma linha em branco antes da descrição detalhada

3.4 Atalho: Add + Commit em Um Comando

⚠️ Importante: Funciona apenas para arquivos já rastreados pelo Git (que já passaram por um git add anteriormente).

git commit -am "Mensagem do commit"

Equivale a:

git add arquivo1 arquivo2 arquivo3  # Apenas arquivos modificados
git commit -m "Mensagem do commit"

NÃO funciona com:

  • Arquivos novos (untracked files)
  • Arquivos deletados (precisa git add ou git rm)

04 - Sincronização com o GitHub

4.1 Enviar Alterações (Push)

# Enviar commits para o GitHub
git push

Primeira vez (já foi feito com -u):

git push -u origin main
  • -u ou --set-upstream: Define a branch remota padrão

Após configurado, apenas:

git push

4.2 Baixar Alterações (Pull)

Use quando fizer alterações diretamente no GitHub (editor web):

# Baixar e mesclar alterações remotas
git pull

O que acontece:

  1. Git busca alterações do GitHub
  2. Mescla automaticamente com sua versão local
  3. Atualiza seu diretório de trabalho

Se houver conflitos:

  • Git pausará o merge
  • Você precisará resolver manualmente
  • Depois: git add . e git commit

4.3 Verificar Diferenças

Antes de fazer pull, você pode verificar o que mudou:

# Buscar informações sem mesclar
git fetch

# Ver diferenças entre local e remoto
git diff main origin/main

05 - Clonagem de Repositórios

5.1 Clonar Via SSH (Recomendado)

git clone git@github.com:USUARIO/repositorio.git

Vantagens:

  • Não pede senha a cada operação
  • Mais seguro
  • Melhor performance

5.2 Clonar Via HTTPS

git clone https://github.com/USUARIO/repositorio.git

Quando usar:

  • Quando não tem chave SSH configurada
  • Para repositórios públicos que só vai ler
  • Em ambientes com restrições de firewall

5.3 Clonar para Pasta Específica

git clone git@github.com:USUARIO/repositorio.git nome-da-pasta

5.4 Clonar Branch Específica

git clone -b nome-da-branch git@github.com:USUARIO/repositorio.git

06 - Comandos Úteis Adicionais

6.1 Visualização de Histórico

# Ver histórico de commits
git log

# Histórico compacto (uma linha por commit)
git log --oneline

# Histórico gráfico
git log --oneline --graph --all

# Ver últimos 5 commits
git log -5

# Ver alterações de cada commit
git log -p

6.2 Desfazer Alterações

# Descartar alterações em arquivo específico (não commitado)
git checkout -- nome-arquivo.txt

# Remover arquivo da staging area (mantém alterações)
git reset HEAD nome-arquivo.txt

# Desfazer último commit (mantém alterações)
git reset --soft HEAD~1

# Desfazer último commit (descarta alterações)
git reset --hard HEAD~1

⚠️ Cuidado com --hard: Perde as alterações permanentemente!

6.3 Gerenciamento de Arquivos

# Remover arquivo do Git e do disco
git rm nome-arquivo.txt

# Remover arquivo apenas do Git (mantém no disco)
git rm --cached nome-arquivo.txt

# Renomear/mover arquivo
git mv arquivo-antigo.txt arquivo-novo.txt

6.4 Informações do Repositório

# Ver repositórios remotos configurados
git remote -v

# Ver configurações do Git
git config --list

# Ver branch atual
git branch

# Ver todas as branches (locais e remotas)
git branch -a

6.5 Arquivo .gitignore

Crie um arquivo .gitignore na raiz do projeto para ignorar arquivos:

# Exemplo de .gitignore
node_modules/
*.log
.env
.vscode/
__pycache__/
*.pyc

Adicionar e commitar:

git add .gitignore
git commit -m "Adiciona arquivo .gitignore"

6.6 Atualizar URL do Repositório Remoto

# Ver URL atual
git remote -v

# Alterar URL (de HTTPS para SSH, por exemplo)
git remote set-url origin git@github.com:USUARIO/repositorio.git

🔄 Fluxo de Trabalho Típico Diário

# 1. Começar o dia - Atualizar repositório
git pull

# 2. Fazer alterações nos arquivos...
# (editar, criar, deletar arquivos)

# 3. Verificar o que mudou
git status

# 4. Adicionar alterações
git add .

# 5. Fazer commit
git commit -m "Descrição das alterações"

# 6. Enviar para o GitHub
git push

# 7. Repetir passos 2-6 conforme necessário

🆘 Resolução de Problemas Comuns

Erro: "Permission denied (publickey)"

Solução: Chave SSH não configurada corretamente

ssh-add ~/.ssh/id_ed25519
ssh -T git@github.com

Erro: "fatal: remote origin already exists"

Solução: Remover e adicionar novamente

git remote remove origin
git remote add origin git@github.com:USUARIO/repositorio.git

Erro: Conflitos ao fazer pull

Solução: Resolver manualmente

git pull  # Vai mostrar arquivos em conflito
# Edite os arquivos e resolva conflitos
git add .
git commit -m "Resolve conflitos"
git push

📚 Recursos Adicionais


Última atualização: 29 de Dezembro 2025

About

Comandos básicos para sincronizar repositório local com o github

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors