Pessoa programando enquanto organiza anotações de projeto
Controle de versão registra alterações e permite trabalhar em caminhos separados com segurança. Crédito da foto.
Compartilhe este conteúdo

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.

Boa mensagem de commit: descreva o resultado, como “Corrige validação do formulário”, em vez de mensagens vagas como “mudanças” ou “teste”.

Um fluxo básico e seguro

  1. Modificar: edite os arquivos necessários.
  2. Revisar: confira o que mudou.
  3. Preparar: selecione apenas as alterações relacionadas.
  4. Registrar: crie um commit com mensagem clara.
  5. 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 push

git 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.

  1. CHACON, Scott; STRAUB, Ben. Pro Git. 2. ed. Apress, 2014.
  2. THOMAS, David; HUNT, Andrew. The Pragmatic Programmer. 20th Anniversary Edition. Addison-Wesley, 2019.

Consulte a bibliografia completa do Código em Sala.