Git e GitHub: Melhores Locais para Versionamento e Postagem de Código
> Introdução
O Git revolucionou o desenvolvimento de software com seu sistema de versionamento de código distribuído. Entre seus recursos mais poderosos estão as branches (linhas do tempo), que permitem trabalhar em opções isoladas sem afetar o código principal. Neste artigo, você aprenderá como usar branches e merge de forma eficiente, além de entender o que é git e github e como cada um deles funciona, habilidades essenciais para qualquer desenvolvedor.
> Como começar a usar o GIT
O Git é um sistema de controle de versão distribuído, criado por Linus Torvalds em 2005, com o objetivo de gerenciar o desenvolvimento do kernel do Linux. Ele permite que desenvolvedores acompanhem, controlem e colaborem nas mudanças feitas no código-fonte ao longo do tempo. Com o Git, é possível registrar o histórico de alterações, trabalhar em diferentes versões de um projeto simultaneamente e restaurar estados anteriores com facilidade, tornando o processo de desenvolvimento mais seguro, organizado e colaborativo.
- Comandos Básicos do Git
git init: inicia um novo repositório Git
git add: adiciona alterações para serem incluídas no próximo commit
git commit: registra as mudanças no repositório
git status: mostra o estado atual do repositório
git log: exibe o histórico de commits
git push: envia as mudanças para um repositório remoto
git pull: obtém mudanças do repositório remoto para o repositório local
git branch: cria, lista ou exclui ramificações
git merge: combina alterações de diferentes ramificações.
Processo de instalação do GIT
Para melhor entendimento e compreensão desse conteúdo, segue um link abaixo, o qual contem todo o procedimento para a instalação do GIT, como também uma aula sobre o versionamento dos códigos em geral com a tutora Elidiana Andrade.
link DIO: https://web.dio.me/course/versionamento-de-codigo-com-git-e-github/learning/f3cbaa66-efbd-4c25-842e-2069c188c066?autoplay=1
> Branches no Git: O que são? Pra que servem?
Branches são um recurso muito importante no controle de versões de código, especialmente em sistemas como o Git. Elas funcionam como “linhas paralelas de desenvolvimento”. Imagine que você está trabalhando em um projeto e, ao invés de mexer direto no código principal (geralmente chamado de "main" ou "master"), você cria uma cópia separada desse código (utilizando o comando git branch ou git checkout -b ou git switch -c) para fazer modificações. Essa cópia é o que chamamos de branch.
O comando git branch permite criar, listar, renomear e excluir ramificações. Ele não permite alternar entre as ramificações ou reunir um histórico bifurcado de novo. Por esse motivo, o comando git branch é muito integrado aos comandos git checkout e git merge.
Com ele você pode:
- Isolar mudanças experimentais.
- Trabalhar em múltiplas tarefas simultaneamente.
- Evitar conflitos diretos no código principal (main ou master).
> GIT vs. GitHub: Qual a Diferença?
Falando um pouco sobre o github:
Fundado em 2008, o GitHub revolucionou a forma como desenvolvedores trabalham, tornando-se o maior serviço de hospedagem de código-fonte baseado em nuvem. Muito mais que um simples repositório, ele é um ecossistema completo para controle de versão, colaboração em equipe e automação de fluxos de trabalho, tudo integrado ao Git, o sistema de versionamento mais usado no mundo.
Uma das principais utilidades do github são:
1. Hospedagem de Código
- Armazenamento ilimitado de repositórios públicos (privados em planos pagos)
Um pegueno exemplo de como os commits ou repositórios funcionam:
2. Controle de Versão Avançado
- Visualização de diferenças entre commits (git diff)
- Revert de alterações indesejadas
- Branch protection (proteção de branches principais)
3. Colaboração em Equipe
- solicitações de merge com revisão de código
- comentários em trechos específicos
- atribuição de tarefas a membros
4. Gerenciamento de Projetos
- quadros Kanban integrados
- marcos de desenvolvimento
- classificação de issues. Dentre muitas outras funções...
Falando um pouco sobre o git:
Como dito anteriormente, o git é um sistema o qual controla versões de códigos distribuídos, normalmente usado localmente em sua maquina e usada para desenvolvimento de software
Uma das principais utilidades do git são:
- Repositórios:
- São como um contêiners que guardam todos os arquivos de um projeto, junto com o histórico completo de alterações feitas ao longo do tempo.
- Commits:
- O termo commit pode ser entendido como o ato de registrar uma alteração no projeto, salvando oficialmente essa modificação no histórico para que ela faça parte da evolução do código.
- Árvore:
- Por fim, as árvores representam a forma como os arquivos e pastas estão organizados em um determinado commit, servindo para registrar a estrutura do projeto em cada ponto da sua evolução.
> Boas práticas de organização para repositórios GIT
1. Mantenha uma estrutura de pastas limpa
- Organize seu projeto em pastas bem nomeadas, como
src/
,docs/
,tests/
,assets/
etc. - Evite arquivos soltos e nomes genéricos como
teste1
,final_v2_bom
. Quanto mais claro, melhor.
2. Crie um bom README.md
O README.md
é a porta de entrada do repositório. Ele deve explicar:
- O que o projeto faz
- Como instalar e rodar
- Tecnologias usadas
- Autoria e licenciamento
Ajuda novos colaboradores (ou até você no futuro) a entenderem o projeto rápido.
3. Use branches para separar tarefas
- Evite trabalhar direto na branch principal (
main
oumaster
). - Use branches para desenvolver novas funcionalidades, corrigir bugs, ou testar coisas novas.
Exemplo: feature/login
, bugfix/menu-responsivo
, hotfix/api-erro
.
4. Use o .gitignore corretamente
Crie um arquivo .gitignore
para ignorar arquivos desnecessários no versionamento, como:
- Arquivos temporários (
.log
,.tmp
) - Pastas de build (
/dist
,/build
) - Dependências (
/node_modules
,/.venv
) - Arquivos de configuração pessoais
5. Colabore com Pull Requests e revisões (se estiver no GitHub/GitLab)
Se estiver trabalhando em equipe:
- Faça pull requests para sugerir mudanças
- Revise o código de colegas antes de aceitar mudanças
- Use comentários para explicar decisões
Conclusão
O Git e o GitHub são ferramentas essenciais no universo do desenvolvimento de software moderno, cada uma com seu papel fundamental. O Git, criado por Linus Torvalds, é um poderoso sistema de controle de versão distribuído, que permite aos desenvolvedores acompanhar e registrar todas as mudanças em um projeto de forma local e segura. Ele possibilita trabalhar com versões diferentes do código, criar branches para testar novas funcionalidades e voltar no tempo caso algo dê errado — tudo isso sem precisar de internet.
Já o GitHub é uma plataforma online que utiliza o Git por trás, mas oferece uma interface gráfica e recursos colaborativos, como pull requests, revisão de código, issues e muito mais. Ele permite que desenvolvedores compartilhem seus projetos com o mundo, colaborem em equipe e gerenciem o desenvolvimento de forma organizada na nuvem.
Entender a diferença entre Git e GitHub é essencial: enquanto o Git gerencia as versões, o GitHub facilita o compartilhamento e a colaboração. Além disso, adotar boas práticas de organização em repositórios, como manter um README.md
claro, usar mensagens de commit descritivas, criar branches específicas para cada tarefa e utilizar corretamente o .gitignore
, garante que o projeto se mantenha limpo, compreensível e fácil de manter ao longo do tempo.
Portanto, dominar essas ferramentas e práticas não só melhora a produtividade individual, como também facilita a integração com outros desenvolvedores, contribuindo para projetos mais eficientes, seguros e bem estruturados.
Referências
- https://www.hostgator.com.br/blog/o-que-e-git-tutorial-para-iniciantes/?gad_source=1&gclid=CjwKCAjwktO_BhBrEiwAV70jXnl5xWHInZWR-MWF2u78Ap4HzdT3cl_vE7sdo4dpzcVTCtVHRSSguBoCF_IQAvD_BwE
- https://web.dio.me/course/versionamento-de-codigo-com-git-e-github/learning/f3cbaa66-efbd-4c25-842e-2069c188c066?autoplay=1
- https://www.hostgator.com.br/blog/github-compartilhamento-de-projetos/?gad_source=1&gclid=CjwKCAjwktO_BhBrEiwAV70jXmIq_Cdd5er--3dNCMOKRTB88c1SZWCj3ngF4EQBjw85dbJL-CahIRoCpSgQAvD_BwE
- https://www.brasilcode.com.br/git-e-github-um-guia-basico-iniciantes/ banner imagem
- https://www.alura.com.br/artigos/o-que-e-git-github#:~:text=O%20Github%20é%20uma%20“rede,está%20sendo%20monitorado%20por%20ele.
- https://git-scm.com/doc
- https://www.atlassian.com/git/tutorials/comparing-workflows
- https://docs.github.com/en
- https://www.toptal.com/developers/gitignore
- https://semver.org/lang/pt-BR/