
Git é um sistema de controle de versão: ele registra a evolução dos arquivos de um projeto. GitHub é uma plataforma que hospeda repositórios Git e adiciona recursos de colaboração. Eles trabalham juntos, mas não são a mesma coisa. É possível usar Git sem internet e sem GitHub.
Repositório, alterações e histórico
Um repositório é um conjunto de arquivos acompanhado pelo Git. O sistema registra snapshots do projeto: arquivos podem estar sem alteração, modificados ou preparados na área de staging para o próximo registro. Um commit identifica um snapshot com autor, data, mensagem e relação com o histórico anterior. Ele não é apenas “salvar”: é registrar uma etapa coerente do trabalho.
Um fluxo básico e seguro
- Modificar: edite os arquivos necessários.
- Revisar: confira o que mudou.
- Preparar: selecione apenas as alterações relacionadas.
- Registrar: crie um commit com mensagem clara.
- Sincronizar: envie ao repositório remoto quando fizer sentido.
git status
git add nome-do-arquivo
git commit -m "Adiciona página de contato"
git pushgit status deve ser consultado com frequência. Ele mostra a branch atual e o estado dos arquivos, reduzindo erros por falta de contexto.
Local e remoto
Clone cria uma cópia local de um repositório remoto. Push envia commits locais. Pull busca alterações e tenta integrá-las ao trabalho local. Antes de enviar, é importante buscar o que a equipe publicou para reduzir divergências.
Branches e merge
Uma branch é uma linha de desenvolvimento. Ela permite criar um recurso ou corrigir um defeito sem mexer imediatamente na linha principal. Quando o trabalho é revisado, suas mudanças podem ser integradas por merge.
Conflito ocorre quando o Git não consegue decidir sozinho como combinar alterações. Não é uma falha misteriosa: o arquivo mostra as partes concorrentes e uma pessoa deve escolher a versão correta, testar e registrar a resolução.
Pull request
Em plataformas como o GitHub, um pull request propõe integrar uma branch. Ele permite discutir, revisar arquivos, executar verificações automáticas e registrar decisões antes da mudança chegar à branch principal.
O que nunca deve ir para um repositório público?
- senhas e chaves privadas;
- arquivos com credenciais;
- dados pessoais de clientes ou estudantes;
- segredos de serviços externos;
- arquivos grandes gerados que não pertencem ao código.
Um arquivo .gitignore impede que padrões desnecessários sejam incluídos, mas não remove um segredo que já foi publicado. Nesse caso, a credencial precisa ser revogada e substituída.
Prática sem pressa
Crie uma pasta com um arquivo de texto, inicie um repositório, faça três alterações e registre cada uma com uma mensagem explicativa. Depois consulte o histórico e descreva como voltar mentalmente a cada etapa.
Perguntas frequentes
GitHub é uma ferramenta de backup?
Ele mantém cópias e histórico, mas não substitui sozinho uma política de backup. Exclusões, credenciais, disponibilidade e regras do serviço ainda precisam ser consideradas.
Preciso decorar todos os comandos?
Não. Entenda o estado dos arquivos e o objetivo de cada etapa. A consulta correta é mais segura do que executar comandos decorados sem contexto.
Referências bibliográficas
Obras reconhecidas que fundamentam e aprofundam os conceitos apresentados neste artigo.
- CHACON, Scott; STRAUB, Ben. Pro Git. 2. ed. Apress, 2014.
- THOMAS, David; HUNT, Andrew. The Pragmatic Programmer. 20th Anniversary Edition. Addison-Wesley, 2019.