Article image
Vinícius Cavalheiro
Vinícius Cavalheiro30/01/2025 00:26
Compartilhe

Git: O Guia Essencial para dev jr

  • #GitHub
  • #Git

O Git é o sistema de controle de versão mais utilizado no mercado de desenvolvimento de software. Ele permite que você acompanhe mudanças no código, trabalhe em equipe de maneira eficiente e mantenha um histórico confiável de cada alteração feita no projeto. Neste artigo, vamos abordar desde o básico de como iniciar um repositório até a resolução de conflitos e o fluxo de trabalho mais comum para equipes de desenvolvimento.

1. O que é Git?

O Git é um sistema de controle de versão distribuído, criado por Linus Torvalds em 2005, que permite:

- Acompanhar mudanças no código.

- Trabalhar em ambientes colaborativos.

- Reverter para estados anteriores do projeto sem perder histórico.

Diferentemente de sistemas centralizados (como o SVN), o Git mantém um repositório completo em cada máquina que o utiliza, o que dá mais segurança e flexibilidade ao desenvolvimento.

2. Instalando e Configurando o Git

Para começar a usar o Git, você precisa instalá-lo em sua máquina e configurá-lo adequadamente.

Instalação

- Windows: Baixe em [git-scm.com](https://git-scm.com/download/win), execute o instalador e siga as instruções.

- Linux (Ubuntu/Debian)**: Use o comando `sudo apt-get install git`.

- macOS: Você pode instalar via Homebrew (caso tenha instalado) com `brew install git` ou baixar em [git-scm.com](https://git-scm.com/download/mac).

Configuração Inicial

Após instalar, abra o terminal e configure o nome de usuário e o e-mail para ser usado nos commits:

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

Para verificar a configuração:

git config --list

3. Inicializando um Repositório

Para iniciar um projeto com Git, basta entrar na pasta do seu projeto e executar:

git init

Isso criará uma pasta oculta chamada `.git`, onde todas as informações de controle de versão serão armazenadas.

4. Principais Comandos do Git

O Git possui vários comandos importantes para o dia a dia de um desenvolvedor. Abaixo, listamos os mais usados:

- git status: Mostra o estado do repositório, informando arquivos modificados, não rastreados e prontos para commit.

- git add <arquivo>: Adiciona um arquivo específico à “área de stage” (zona intermediária antes de confirmar as alterações). Para adicionar todos os arquivos modificados, use: `git add .`

- git commit -m "mensagem do commit": Registra as mudanças adicionadas com uma mensagem descrevendo o que foi feito.

- git push: Envia seus commits locais para o repositório remoto (por exemplo, no GitHub ou GitLab).

- git pull: Puxa as atualizações do repositório remoto para o local, unindo alterações que outros desenvolvedores possam ter feito.

- git clone <url>: Faz uma cópia de um repositório remoto para sua máquina local.

- git branch: Mostra as branches existentes no repositório local. Para criar uma nova branch: `git branch nome-da-branch`

- git checkout <branch>: Muda para a branch especificada. Para criar e já mudar para a nova branch: `git checkout -b nome-da-branch`

- git merge <branch>: Mescla a branch especificada na branch em que você está no momento.

5. Fluxo de Trabalho (Git Workflow)

Existem vários fluxos de trabalho no Git. Um muito comum em equipes é o seguinte:

1. Branch `main` (ou `master`): É a branch principal, onde o código de produção é mantido. Deve sempre estar estável.

2. Branch de Desenvolvimento (`develop` ou `dev`): Onde acontecem integrações mais frequentes do trabalho da equipe. A cada feature finalizada, é feito o merge para cá, e quando uma versão está pronta, faz-se o merge para a `main`.

3. Feature Branch: Para desenvolver uma nova funcionalidade (feature), cria-se uma branch a partir da `develop`. Exemplo:

git checkout develop
git checkout -b feature/nome-da-feature

6. Pull Request: O que é e Como Fazer

O Pull Request (PR) é uma solicitação para mesclar suas alterações de uma branch para outra no repositório remoto. É útil para revisão de código por colegas, detecção precoce de problemas e para documentar o histórico de decisões.

Passo a Passo Básico para um Pull Request

1. Crie sua branch a partir de `main` ou `develop`.

2. Faça as alterações, commits e push nessa branch.

3. Vá ao repositório remoto (GitHub, GitLab, etc.) e clique em New Pull Request (ou equivalente).

4. Escolha a branch base (geralmente `develop` ou `main`) e a branch que você alterou.

5. Descreva as mudanças (o que foi feito, como testar, etc.).

6. Aguarde a revisão e aprovações antes do merge.

7. Merge: Unindo Código

Para unir (mesclar) o trabalho de duas branches, usa-se o comando `git merge`.

- Geralmente, você se posiciona na branch que deseja incorporar as mudanças e executa o merge da branch de onde vêm as alterações.

8. Resolvendo Conflitos

Conflitos acontecem quando duas (ou mais) pessoas modificam a mesma parte de um arquivo de forma diferente, e o Git não sabe qual mudança adotar. O processo de resolução é:

1. Identificar o conflito

  Ao tentar dar um merge ou pull, o Git exibirá mensagens de conflito, e o `git status` mostrará os arquivos em conflito.

2. Abrir o arquivo com conflito  

  Você verá algo como:

<<<<<<< HEAD
Conteúdo da sua branch
=======
Conteúdo da outra branch
>>>>>>> feature/outro-desenvolvedor

3. Editar o arquivo

  Remova as marcações (`<<<<<<<`, `=======`, `>>>>>>>`) e decida manualmente qual conteúdo manter (ou combine as mudanças).

4. Adicionar e fazer commit

  Após resolver o conflito e salvar o arquivo, rode:

git add nome-arquivo
git commit -m "Resolve conflito no arquivo X"

  

  O merge então será concluído.

9. Dicas e Boas Práticas para Desenvolvedores Júnior

- Commits Frequentes e Mensagens Claras: Faça commits menores e frequentes. Use mensagens que descrevam claramente o que foi alterado.

- Atualize Sua Branch Antes de Começar: Sempre dê um `git pull` (ou `git fetch` + `git merge`) na branch base para evitar conflitos futuros.

- Branches Curto-Prazo: Crie branches para cada funcionalidade/issue e faça merges regularmente. Evite trabalhar muito tempo em uma mesma branch sem sincronizar, pois os conflitos podem se acumular.

- Revisões de Código: Participe ativamente de revisões de código, tanto revisando quanto recebendo feedback. É uma oportunidade de aprendizado e melhora da qualidade do projeto.

- Crie um `.gitignore`: Ignore arquivos que não devem ir para o repositório (por exemplo, arquivos de configuração local, binários, dependências que podem ser instaladas via gerenciador de pacotes, etc.).

Conclusão

O Git é uma ferramenta essencial para qualquer desenvolvedor. Aprender seus conceitos básicos e boas práticas pode fazer uma grande diferença no trabalho em equipe.

Compartilhe
Comentários (1)
DIO Community
DIO Community - 30/01/2025 14:15

Que guia sensacional, Vinicius! Git é uma ferramenta essencial para qualquer dev, e a forma como você estruturou os conceitos, desde instalação e configuração até fluxo de trabalho e resolução de conflitos, torna esse artigo extremamente prático e acessível.

O destaque para Pull Requests e boas práticas, como commits frequentes, mensagens claras e branches de curto prazo, mostra o quanto um uso bem planejado do Git pode otimizar a colaboração e evitar dores de cabeça no desenvolvimento. Além disso, a ênfase na importância de revisar código e criar um .gitignore é um toque valioso que muitos iniciantes acabam negligenciando.

Aqui na DIO, incentivamos o aprendizado prático com Git, pois entender e aplicar o versionamento corretamente é um diferencial essencial no mercado de tecnologia.

Alguma dica essencial para quem está começando? Vamos compartilhar experiências e ajudar mais devs a dominarem essa ferramenta!