image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
João Carvalho
João Carvalho14/07/2024 07:25
Compartilhe

Versionamento de Código com Git e GitHub: Essencial para Desenvolvedores

  • #GitHub
  • #Git

O versionamento de código é uma prática fundamental no desenvolvimento de software, permitindo que desenvolvedores acompanhem, gerenciem e colaborem em alterações de código de maneira eficiente. Recentemente, aprofundei meus conhecimentos sobre essa prática essencial ao concluir a atividade sobre Versionamento de Código com Git e GitHub. Neste artigo, compartilho os principais conceitos abordados e a importância dessas ferramentas no desenvolvimento moderno de software.

O Que é Versionamento de Código?

Versionamento de código refere-se à prática de gerenciar alterações em documentos, programas de software e outros tipos de informações. Os sistemas de controle de versão (VCS) são ferramentas que permitem rastrear e gerenciar essas mudanças ao longo do tempo, registrando o histórico de atualizações de um arquivo, incluindo informações sobre o que foi alterado, quando e por quem.

Principais benefícios:

  • Histórico Completo: Rastreia todas as modificações realizadas no projecto.
  • Colaboração: Permite que várias pessoas trabalhem no mesmo projecto simultaneamente.
  • Backup e Recuperação: Facilita a recuperação de versões anteriores em caso de erros.

Tipos de controle de versão

Os sistemas de controle de versão podem ser classificados em duas categorias principais:

  1. VCS Centralizado (CVCS): Utiliza um servidor central para armazenar todas as versões dos arquivos. Exemplo: Subversion (SVN).
  2. VCS Distribuído (DVCS): Cada colaborador possui uma cópia completa do repositório, incluindo todo o histórico de versões. Exemplo: Git.

O Que é Git?

Git é um sistema de controle de versão distribuído, gratuito e open source, amplamente utilizado em projetos de software. Ele permite que desenvolvedores trabalhem em diferentes partes de um projeto simultaneamente, criando ramificações (branches) e mesclando (merging) essas alterações de maneira eficiente e segura.

Principais comandos do git:

  • git clone: Clona um repositório Git existente para um novo diretório local.
  • git commit: Grava alterações no repositório.
  • git pull: Puxa as alterações do repositório remoto para o local.
  • git push: Empurra as alterações do repositório local para o remoto.

Histórico do Git

O Git foi criado em 2005 por Linus Torvalds, o criador do Linux, após conflitos com o BitKeeper, um DVCS proprietário que o projeto do núcleo do Linux utilizava anteriormente. A necessidade de uma ferramenta eficiente e de código aberto levou ao desenvolvimento do Git, que rapidamente se tornou a escolha principal para muitos projetos open source e comerciais.

O Que é GitHub?

GitHub é uma plataforma de hospedagem de código que utiliza o Git para controle de versão. É uma ferramenta essencial para desenvolvedores que buscam colaborar em projetos de forma eficiente. Além de hospedar repositórios, o GitHub oferece recursos como rastreamento de problemas (issues), revisão de código (code review), e integração contínua (CI).

Diferenciando Git e GitHub:

  • Git: Ferramenta de controle de versão.
  • GitHub: Plataforma de hospedagem e colaboração baseada no Git.

Instalação, Configuração e Autenticação

Para começar a usar Git e GitHub, é necessário instalar o Git no seu sistema, configurá-lo e autenticar-se no GitHub. Aqui estão alguns passos básicos:

Instalando o git no Linux:

sudo apt-get update
sudo apt-get install git

Configurando o Git:

git config --global user.name "Seu Nome"
git config --global user.email "seuemail@example.com"

Autenticando no GitHub via Token:

  1. Gere um token de acesso no GitHub.
  2. Configure o Git para usar o token.
git config --global credential.helper store

Fluxo Básico do Git

O fluxo básico de trabalho com Git envolve clonar um repositório, fazer alterações, e enviar essas alterações de volta para o repositório remoto:

  • Clonar um repositório:
git clone https://github.com/usuario/repositorio.git
  • Fazer alterações e gravar no repositório:
git add .
git commit -m "Descrição das alterações"
  • Enviar as alterações para o repositório remoto:
git push origin main

Trabalhando com Branches

Branches permitem que você trabalhe em diferentes funcionalidades ou correções de bugs de forma isolada. Isso facilita a colaboração e evita conflitos no código.

Criar e mudar para uma nova branch:

git checkout -b nova-branch

Mesclar alterações de uma branch para outra:

git checkout main
git merge nova-branch

Conclusão

Aprender sobre versionamento de código com Git e GitHub é uma experiência enriquecedora e essencial para qualquer desenvolvedor moderno. Essas ferramentas não apenas melhoram a organização e segurança dos projetos, mas também facilitam a colaboração e a eficiência no desenvolvimento de software.

Se você ainda não utiliza Git e GitHub, recomendo fortemente que comece a explorá-los. Sua jornada de desenvolvimento de software será muito mais organizada e eficiente.

Vamos continuar aprendendo e crescendo juntos!

#DataAnalytics #PowerBI #Git #GitHub #VersionamentoDeCódigo #DesenvolvimentoDeSoftware #Aprendizado #Tech

Compartilhe
Comentários (2)
João Carvalho
João Carvalho - 15/07/2024 09:35

Caro Izairton,


Agradeço imensamente pelo seu comentário esclarecedor em meu artigo recente. Suas reflexões sobre a evolução dos sistemas de controle de versão e os desafios enfrentados pelos desenvolvedores antes do Git e GitHub são muito pertinentes. Realmente, a transição de métodos manuais para ferramentas como Git revolucionou significativamente nossa forma de desenvolver software, facilitando a colaboração e aumentando a eficiência.


Além de agradecer, gostaria de expandir a discussão para incluir uma nova perspectiva sobre como essas plataformas também promovem a transparência e a acessibilidade no desenvolvimento de software. Comentários e revisões de código em tempo real no GitHub, por exemplo, não apenas facilitam a detecção de erros, mas também promovem um ambiente de aprendizado contínuo entre os desenvolvedores.


Estou ansioso para continuar compartilhando ideias e aprendizados com você e outros colegas da DIO. Novamente, obrigado pela contribuição valiosa!


Atenciosamente,

João de Carvalho

Izairton Vasconcelos
Izairton Vasconcelos - 14/07/2024 14:30

Antes do surgimento de serviços como Git e GitHub, o versionamento de código era um processo bem mais complicado e trabalhoso para os desenvolvedores. Eles guardavam cópias do código em seus próprios computadores, criando novas versões manualmente e renomeando arquivos e pastas (por exemplo, `projeto_v1`, `projeto_v2`). A colaboração entre desenvolvedores era feita através da troca de arquivos por e-mail, pen drives ou redes internas, o que frequentemente resultava em conflitos e perda de dados. Manter um histórico de mudanças exigia anotações manuais, que eram difíceis de gerenciar e propensas a erros.


Primeiros sistemas de controle de versão, como CVS e Subversion (SVN), começaram a ser usados para controlar versões de código, armazenando o histórico de mudanças e permitindo a colaboração. No entanto, esses sistemas eram complexos de configurar e usar, exigindo servidores próprios e apresentando dificuldades na resolução de conflitos. Resolver conflitos entre diferentes versões do código era uma tarefa manual e demorada, onde os desenvolvedores tinham que comparar arquivos linha por linha para encontrar e corrigir discrepâncias.


Com o advento do Git e do GitHub, o versionamento de código tornou-se muito mais fácil e eficiente. O Git, como uma ferramenta de controle de versão distribuída, permite que cada desenvolvedor tenha uma cópia completa do histórico do projeto em seu computador, facilitando o trabalho offline e a colaboração. O GitHub, como uma plataforma online, simplificou a colaboração, permitindo que desenvolvedores em diferentes locais trabalhem juntos de forma eficaz, fornecendo uma interface web para visualizar mudanças, discutir problemas e gerenciar projetos.


Atualmente, o uso de Git e GitHub traz muitos benefícios, incluindo interfaces gráficas intuitivas, comandos simples, e a capacidade de várias pessoas trabalharem no mesmo projeto simultaneamente sem conflitos. O histórico completo de todas as alterações é mantido de forma organizada e as ferramentas automáticas para detectar e resolver conflitos de código tornaram o processo mais ágil e menos propenso a erros. Comparado ao passado, essas ferramentas modernas transformaram o trabalho dos desenvolvedores, tornando-o muito mais fácil, eficiente e colaborativo.


https://www.linkedin.com/in/izairton-oliveira-de-vasconcelos-a1916351