Apostila: Configurações do GitHub

Guia completo para entender todas as configurações do repositório

Introdução

Esta apostila tem como objetivo explicar todas as configurações disponíveis em um repositório do GitHub. Cada seção aborda funcionalidades específicas que ajudam a gerenciar, proteger e organizar seu projeto de forma eficiente.

💡 Dica: As configurações do repositório são fundamentais para definir como sua equipe colabora e como o código é gerenciado.

Configurações Gerais

Nome do Repositório

O nome do repositório é o identificador principal do seu projeto no GitHub.

Importante: Alterar o nome pode quebrar links e referências existentes.

Template Repository Repositório modelo que serve como base para criar novos projetos com estrutura predefinida (Repositório Modelo)

Permite que outros usuários criem novos repositórios usando a mesma estrutura de diretórios e arquivos.

Uso: Ideal para criar modelos reutilizáveis de projetos, como boilerplates Código padrão reutilizável que serve como ponto de partida para projetos ou estruturas padrão.

Exigir Sign-off Assinatura digital que confirma autoria e concordância com os termos do projeto (Assinatura) dos Colaboradores

Requer que os colaboradores assinem seus commits Unidade de mudança no código que registra alterações no repositório feitos pela interface web do GitHub.

DCO Developer Certificate of Origin - certificado que garante que o contribuidor tem direito de submeter o código : A assinatura afirma que o commit está em conformidade com o Developer Certificate of Origin (Certificado de Origem do Desenvolvedor).

Branch Padrão

O branch considerado "base" do repositório, contra o qual todos os pull requests e commits são feitos automaticamente.

Padrão: Geralmente "main" ou "master". Pode ser alterado conforme necessário.

Prévia Social

Permite fazer upload de uma imagem para personalizar a prévia do repositório nas redes sociais.

Dimensões: Mínimo 640×320px (1280×640px para melhor exibição).

Funcionalidades

Wikis

Hospeda documentação para o repositório.

Opção: Restringir edição apenas para colaboradores.

Issues Sistema de tickets para rastrear bugs, features e tarefas do projeto (Problemas/Tarefas)

Integra rastreamento leve de tarefas no repositório.

Recursos: Labels Etiquetas para categorizar e organizar issues (etiquetas), milestones Marcos do projeto para agrupar issues por versão ou objetivo (marcos) e referências em commits.

Patrocínios

Ajuda a comunidade a saber como apoiar financeiramente o repositório.

Opção: Exibir botão "Sponsor" com links para GitHub Sponsors.

Discussões

Espaço para a comunidade ter conversas e fazer perguntas sem abrir issues.

Benefício: Engaja a comunidade diretamente no repositório.

Projetos

Criados no nível do proprietário (organização ou usuário) e podem ser vinculados ao repositório.

Uso: Adequados para desenvolvimento entre repositórios e roadmaps complexos.

Preservar Repositório

Inclui o código no Programa de Arquivo do GitHub.

Finalidade: Preservação histórica do código para futuras gerações.

Pull Requests Solicitações de incorporação de mudanças - mecanismo para propor alterações no código (Solicitações de Incorporação)

Ao fazer merge de pull requests, você pode permitir qualquer combinação de merge commits, squashing ou rebasing. Pelo menos uma opção deve estar habilitada.

Permitir Merge Commits Commits de mesclagem que unem alterações de diferentes branches preservando o histórico (Commits de Mesclagem)

Adiciona todos os commits do branch head Branch de origem que contém as mudanças a serem incorporadas ao branch base Branch de destino que receberá as mudanças com um merge commit.

Resultado: Preserva o histórico completo de commits do branch de feature Branch criado para desenvolver uma funcionalidade específica .

Permitir Squash Merging Técnica que combina múltiplos commits em um único commit limpo (Mesclagem Comprimida)

Combina todos os commits do branch head em um único commit no branch base.

Vantagem: Mantém um histórico mais limpo e linear.

Permitir Rebase Merging Técnica que reaplica commits um por um criando um histórico linear sem merge commits (Mesclagem com Rebase)

Adiciona todos os commits do branch head ao branch base individualmente.

Efeito: Reescreve o histórico para parecer linear, sem merge commits.

Permitir Auto-merge

Aguarda que os requisitos de merge sejam atendidos e então faz o merge automaticamente.

Requisitos: Todas as revisões e verificações de status devem passar.

Deletar Automaticamente Head Branches

Após o merge dos pull requests, os head branches podem ser deletados automaticamente.

Nota: Branches deletados ainda podem ser restaurados.

Arquivos

Incluir Objetos Git LFS Git Large File Storage - sistema para versionar arquivos grandes sem sobrecarregar o repositório nos Arquivos

Ao criar arquivos de código-fonte, você pode escolher incluir arquivos armazenados usando Git LFS no arquivo.

Cobrança: O uso do Git LFS em arquivos é cobrado na mesma taxa que o uso com o cliente.

Git LFS Git Large File Storage - permite versionar arquivos grandes (imagens, vídeos, etc.) sem impactar o desempenho do repositório : Git Large File Storage (Armazenamento de Arquivos Grandes) é uma extensão que substitui arquivos grandes por ponteiros de texto, armazenando o conteúdo real em um servidor remoto.

Pushes

Limitar Branches e Tags em um Único Push

Pushes serão rejeitados se tentarem atualizar mais branches/tags do que o limite definido.

Finalidade: Previne pushes acidentais em massa que podem causar problemas no repositório.

Status: Funcionalidade em preview - feedback dos usuários é bem-vindo.

Zona de Perigo

⚠️ Atenção: As ações nesta seção são irreversíveis ou podem ter consequências significativas. Proceda com extrema cautela.

Alterar Visibilidade do Repositório

Muda entre público, privado ou interno (para organizações).

Limitação: Por segurança, não é possível alterar a visibilidade de um fork.

Desabilitar Regras de Proteção de Branch

Desabilita a aplicação de regras de proteção de branch e APIs relacionadas.

Risco: Remove proteções importantes que previnem alterações acidentais.

Transferir Propriedade

Transfere o repositório para outro usuário ou organização onde você tem permissão para criar repositórios.

Consequência: Você perderá controle administrativo sobre o repositório.

Sair da Rede de Forks

Desvincula o repositório da rede de forks e o torna independente.

Efeito: Perde a relação com o repositório original e outros forks.

Arquivar Repositório

Marca o repositório como arquivado e somente leitura.

Estado: Código fica visível, mas não pode ser modificado. Pode ser desarquivado.

Deletar Repositório

Uma vez deletado, não há como desfazer. Tenha absoluta certeza antes de proceder.

🚨 IRREVERSÍVEL: Todo o código, histórico, issues, PRs e dados serão perdidos permanentemente.

Conclusão

Esta apostila cobriu todos os aspectos importantes das configurações do GitHub. Compreender essas configurações é fundamental para:

  • Gestão eficiente: Organizar e controlar seu repositório adequadamente
  • Colaboração: Facilitar o trabalho em equipe com as ferramentas certas
  • Segurança: Proteger seu código com configurações apropriadas
  • Automação: Otimizar workflows com merge automático e outras funcionalidades

💡 Lembre-se: Sempre teste configurações em repositórios de desenvolvimento antes de aplicá-las em produção, especialmente as da Zona de Perigo!