Vídeo em breve
Por enquanto, esta aula está disponível só em texto — o vídeo entra assim que ficar pronto.
GitHub e colaboração
GitHub: repositórios remotos
Criar um repositório no GitHub, autenticar com chave SSH e sincronizar com clone, push, fetch e pull. · 18 min
Até aqui tudo ficou no seu computador. O GitHub hospeda repositórios
Git na internet, o que dá três vantagens: backup do seu código, acesso de
qualquer máquina e colaboração com outras pessoas. Um repositório na
internet é chamado de remoto (remote), e o apelido padrão dele é
origin.
Criando o repositório
- Crie uma conta em github.com.
- Clique em New repository, escolha um nome e decida entre público (qualquer pessoa vê) ou privado (só quem você convidar).
- Se você já tem um projeto local, crie o repositório vazio, sem README.
Autenticando com chave SSH
Para o seu computador provar ao GitHub quem você é sem digitar senha toda hora, a forma mais prática é uma chave SSH:
ssh-keygen -t ed25519 -C "seu-email@exemplo.com"
Aceite os padrões. Isso gera duas chaves: a privada (fica só na sua máquina, nunca compartilhe) e a pública, que você cadastra no GitHub. Copie o conteúdo da pública:
cat ~/.ssh/id_ed25519.pub
No GitHub, vá em Settings, SSH and GPG keys, New SSH key, cole o conteúdo e salve. Teste a conexão:
ssh -T git@github.com
Dica
Se preferir não mexer com SSH, o GitHub CLI resolve a autenticação com
um comando: instale o gh e rode gh auth login. Ele guia você pelo
login no navegador.
Conectando o projeto local ao GitHub
Com o repositório criado, o GitHub mostra os comandos. Para um projeto que já existe na sua máquina:
git remote add origin git@github.com:seu-usuario/seu-repo.git
git branch -M main
git push -u origin main
O -u só é necessário na primeira vez: ele liga a sua main local à
main remota, e depois basta git push. Confira o endereço cadastrado
com git remote -v.
Baixando e sincronizando
git clone git@github.com:seu-usuario/seu-repo.git # copia um repositório inteiro
git fetch # baixa novidades, sem mexer nos seus arquivos
git pull # fetch + merge: traz as novidades para a branch atual
git push # envia seus commits para o GitHub
Se você tentar dar push e o GitHub recusar dizendo que o remoto tem
commits que você não tem, o recado é: faça git pull primeiro,
resolva algum conflito se aparecer, e só então dê push de novo.
Atenção
Nunca suba senhas, tokens ou chaves para o GitHub, nem em repositório
privado. Um repositório privado hoje pode virar público amanhã, ou ser
acessado por alguém que você convidou. Segredos ficam no .env, e o
.env fica no .gitignore.
O README
O arquivo README.md na raiz é a “capa” do projeto: o GitHub o exibe
automaticamente na página do repositório. Escreva nele o que o projeto
faz, como instalar e como usar. É escrito em Markdown, o mesmo formato
usado nas aulas deste site.
Exercícios
Exercício
1. Aquecimento. Crie sua conta (se ainda não tem), configure a chave
SSH e confirme que ssh -T git@github.com responde com o seu usuário.
Exercício
2. Publicando. Pegue o repositório que você criou no módulo anterior,
crie um repositório vazio no GitHub e envie tudo com git push. Abra a
página do repositório e confira que seus commits estão lá.
Exercício
3. Desafio. Simule duas máquinas: faça git clone do repositório em
outra pasta. Faça um commit e push em uma das cópias, e traga a
mudança para a outra com git pull. Depois provoque o erro de push
recusado: faça commits diferentes nas duas cópias e tente enviar as duas.
Como você resolveu?