Descubra o poder do Git: Fundamentos - Parte 2

Descubra o poder do Git: Fundamentos - Parte 2

Após uma introdução sobre o Git, iremos agora rever os fundamentos desta ferramenta através de uma história prática para que você possa começar a usá-la imediatamente e apreciar seu valor. A história começa assim.

Era uma vez um grupo de desenvolvedores chamado Alpha Team que estava trabalhando em um ambicioso projeto de software. À medida que o projeto crescia, a equipe enfrentava desafios para manter o código organizado e coordenar as atualizações entre seus membros.

Um dia, um dos membros da equipe encontrou um livro antigo que falava sobre um lugar chamado Gitlandia. Segundo o livro, a Gitlandia era um mundo mágico onde as equipes de desenvolvimento podiam gerenciar seus projetos de forma eficiente e estruturada por meio de uma ferramenta chamada Git.

Intrigado com a promessa do Gitland, o Alpha Team decidiu se aventurar nesse novo mundo e aprender como usar o Git para transformar seu projeto de desenvolvimento. Ao longo de sua jornada, eles descobriram muitos segredos e técnicas do Git e, nesta história, contaremos sua fascinante história.

1) Iniciando a jornada - Noções básicas


Git é um sistema de controle de versão de software usado para rastrear alterações no código-fonte e colaborar em projetos de programação. Aqui estão alguns princípios básicos para entender o Git facilmente:

  • Repository: Um repositório Git é um local onde o código-fonte e seu histórico de alterações são armazenados. Pode estar em um computador local ou em um servidor remoto.
  • Commit: Um commit é um instantâneo do código-fonte em um determinado ponto no tempo. Cada commit tem uma mensagem que descreve as mudanças feitas.
  • Branch: Uma ramificação é uma linha de desenvolvimento separada do fluxo de trabalho principal. As ramificações são usadas para desenvolver novos recursos sem afetar a ramificação principal.
  • Merge: É o processo de combinar alterações de um ramo para outro. Isso é usado quando você concluiu um recurso ou correção de bug em uma ramificação e deseja integrar com a ramificação principal.
  • Conflict: Um conflito ocorre quando duas ramificações têm alterações no mesmo arquivo ou linha. O Git não pode mesclar alterações automaticamente e exige que o usuário resolva manualmente o conflito.
  • Clone: A clonagem é o processo de criar uma cópia de um repositório remoto no computador local.
  • Push: Empurrar é o processo de push de alterações locais para um repositório remoto.
  • Pull: Puxar é o processo de obter as alterações mais recentes de um repositório remoto e mesclá-las com as alterações locais.


Esses são apenas alguns dos fundamentos do Git, mas dão uma ideia de como ele funciona e como é usado no desenvolvimento de software. Você pode ver ainda mais detalhes dos conceitos na próxima página.

2) Criar um mapa - Obter um repositório no Git


Para começar a usar o Git, a equipe precisava criar um repositório para o projeto. Eles descobriram que um repositório é um local onde os arquivos são armazenados e o histórico das alterações feitas neles é registrado. Em outras palavras, um repositório Git é como um mapa que mantém um registro detalhado de todas as alterações feitas em um projeto de software.

Primeiro, eles instalaram o Git em seus computadores e depois, no terminal, navegaram até a pasta do projeto. Lá, eles executaram o seguinte comando para inicializar um novo repositório:

  • $ git init

Com este comando, eles criaram um repositório Git na pasta do projeto. Agora eles estavam prontos para adicionar arquivos e acompanhar as alterações feitas.

💡
Observação: Um repositório Git também pode ser vinculado a um repositório remoto, como GitHub, Gitlab, etc., que permite compartilhar e colaborar no código com outros desenvolvedores. Os repositórios Git são essenciais para controle de versão e gerenciamento eficiente de projetos de software.

3) Fazer check-in das aventuras - Escrever alterações no repositório


A próxima etapa em sua jornada foi fazer o check-in das alterações no repositório. A equipe aprendeu que o Git rastreia alterações de arquivo por meio de confirmações, que são instantâneos do projeto em um momento específico. Cada confirmação é como uma página no diário do projeto, registrando todas as alterações feitas.

Para registrar uma alteração, primeiro eles precisavam adicionar os arquivos alterados à área de preparação usando o comando:

  • $ git add <archivo>

Uma vez que todos os arquivos estavam na área de staging, a equipe usou o seguinte comando para criar um novo commit com uma mensagem descritiva das alterações feitas:

  • $ git commit -m "Mensagem descritiva"
💡
Observação: Lembre-se de que, ao criar seus commits, eles devem ser atômicos, o que significa que cada commit deve representar uma alteração completa e consistente no código. Isso ajuda a manter o histórico de alterações do projeto claro e fácil de entender, além de facilitar o rastreamento de bugs no código. Um bom critério para fazer commits atômicos é que cada um contenha as alterações necessárias para resolver uma tarefa específica.


4) Ler as crônicas - Olhar o histórico de commits


A equipe Alpha queria revisar seu histórico de confirmação para obter uma visão geral das alterações feitas no projeto. Eles usaram o comando:

  • $ git log

Este comando mostrou a eles uma lista de todos os commits feitos até agora, incluindo informações como autor, data e mensagem do commit. Ao revisar o histórico de commits, o Alpha Team pôde ver como seu projeto evoluiu ao longo do tempo e como cada membro da equipe contribuiu para seu desenvolvimento.

💡
Observação: Existem ferramentas visuais que podem ajudá-lo/a a ler os commits no Git com mais facilidade e eficiência, como GitKraken, SourceTree ou GitHub Desktop. Essas ferramentas fornecem uma interface visual para os commits, o que pode torná-los mais fáceis de ler e entender.


5) Voltar no tempo - Desfazer alterações

A certa altura de sua aventura, um dos membros da equipe, Ana, cometeu um erro em seu código e quis desfazer seu último commit. Olhando o livro de Gitland, ele descobriu que você poderia usar o comando git revert para desfazer as alterações feitas no último commit e criar um novo commit que desfaria essas alterações:

  • $ git revert HEAD

Além disso, se você quiser corrigir o último commit, o Alpha Team aprendeu que você pode usar o comando git commit --amend. Isso permitiu que você adicionasse novas alterações ao último commit ou alterasse sua mensagem, permitindo corrigir bugs sem criar um histórico confuso.

💡
Observação: é importante entender o efeito de reverter uma confirmação. Fazer isso cria um novo commit que reverte as alterações feitas no anterior. Este novo commit não exclui o anterior, mas o mantém no histórico do projeto e cria uma bifurcação na linha do tempo. É importante observar que, se o commit original foi compartilhado com outros membros da equipe, revertê-lo pode afetar seu trabalho e possivelmente levar a conflitos.


6) Trabalhar em equipe - Repositórios remotos

El Equipo Alfa necesitaba colaborar y compartir su trabajo en un repositorio remoto, como si fuera un centro de reunión en Gitlandia. Decidieron utilizar Gitlab, una popular plataforma para alojar repositorios Git. Crearon un nuevo repositorio en Gitlab y luego lo vincularon a su repositorio local utilizando el siguiente comando:

  • $ git remote add origin <URL del repositorio remoto>

Para enviar suas alterações para o repositório remoto, eles usaram o comando git push:

  • $ git push origin master

Isso envia as alterações para o repositório remoto no Gitlab, permitindo que toda a equipe visualize e colabore no código de qualquer lugar. Se outro membro da equipe tivesse feito alterações e enviado para o repositório remoto, eles poderiam obter essas alterações usando git pull:

  • $ git pull origin master
💡
Observação: Lembre-se de manter seu repositório local atualizado com o remoto para evitar conflitos e garantir que todos os membros da equipe estejam trabalhando com a versão mais recente do código. Isso pode ser feito usando o comando git fetch para extrair as alterações do repositório remoto para seu repositório local e, em seguida, usando git merge para mesclar as alterações em sua ramificação local.

Além disso, não se esqueça de usar ramificações remotas para colaboração, uma prática recomendada para trabalhar de forma eficiente e colaborativa em um projeto. Ramos remotos permitem que os membros da equipe trabalhem em diferentes aspectos do projeto em paralelo, sem interferir no trabalho uns dos outros. Ao criar uma ramificação remota, você pode trabalhar nela e enviar suas alterações para o repositório remoto. Outros membros da equipe podem mesclar suas alterações em sua própria ramificação remota e vice-versa.


7) Marcar Marcos - Rótulos

Em sua jornada por Gitland, o Team Alpha queria celebrar e acompanhar versões importantes de seu projeto, como compilações de lançamento. Para fazer isso, eles usaram tags no Git. Eles criaram uma tag em um commit específico usando o seguinte comando:

  • $ git tag -a v1.0 -m "Versão 1.0"

As tags permitiram que eles marcassem marcos importantes na história do projeto, facilitando o acesso a pontos-chave a qualquer momento e mostrando o progresso de sua aventura em Gitland.

💡
Observação: La forma más común de etiquetar en Git es para marcar versiones de lanzamiento de un proyecto. En este caso, se recomienda utilizar el siguiente formato para el tag: vX.Y.Z, donde X, Y y Z representan la versión mayor, menor y de parche, respectivamente. Por ejemplo, si la versión de lanzamiento es la 1.2.3, el tag sería "v1.2.3".

8) Criar atalhos mágicos - Aliases

À medida que a equipe se familiarizava com o Git, eles perceberam que alguns comandos eram muito longos e difíceis de lembrar. Seus membros decidiram usar pseudônimos para criar atalhos para os comandos que usavam com frequência, como se fossem feitiços que facilitassem seu trabalho em Gitland.

Por exemplo, eles criaram um alias chamado co para o comando git checkout usando o seguinte comando:

$ git config --global alias.co checkout

Agora, em vez de digitar git checkout, eles podem digitar git co. Isso permitiu que eles aumentassem sua eficiência e trabalhassem com mais facilidade em Gitland.

💡
Observação: Algumas coisas a considerar ao usar aliases são:

- Escolha um nome claro e fácil de lembrar. É importante escolher um nome com essas características, pois facilitará seu uso no futuro e diminuirá a possibilidade de erros tipográficos.

- O nome do alias deve ser significativo e representar o comando que você está abreviando. Além disso, você deve ser consistente na maneira como cria seus aliases.

- Use uma convenção de nomenclatura consistente, como um prefixo comum para todos os seus aliases, para facilitar sua identificação no futuro.

- Verifique a disponibilidade, ou seja, se o nome do seu alias ainda não está sendo usado por outro comando no Git. Se o nome que você escolheu já estiver sendo usado por outro comando, pode causar erros ou confusão.


9) O fim de uma grande jornada - Resumo

Depois de muitas aventuras e desafios superados em Gitland, o Alpha Team dominou a arte de usar o Git para gerenciar seu projeto de desenvolvimento, tornando-se referência em sua área. Seu sucesso foi atribuído em grande parte à adoção do Git como uma ferramenta-chave em seu fluxo de trabalho, e suas habilidades permitiram que eles mantivessem seu código organizado, colaborassem com eficiência e conduzissem seu projeto ao sucesso.

Por meio dessa narração, aprendemos com o Alpha Team sobre o básico do Git, como fazer check-out de um repositório, fazer check-in de alterações, visualizar o histórico de commits, desfazer ações, trabalhar com repositórios remotos, marcar versões importantes e criar aliases para facilitar o uso .

Espero que tenham gostado desta história. Vejo você no blog… ou em Gitlandia, se quiser.

💡
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.