Está cada vez mais difícil de se falar em projetos de TI sem se falar em versionamento. E, sem dúvidas, está cada vez mais difícil ingressar no mercado sem conhecer tecnologias de versionamento. Dentre as várias tecnologias que um desenvolvedor precisa conhecer, o Git se tornou a tecnologia de versionamento essencial para os programadores de hoje em dia.
Se você está ingressando no mercado de TI agora, ou já trabalha há algum tempo e ainda não compreendeu como usar essa ferramenta, este artigo é para você.
Aqui vamos trabalhar os conceitos essenciais para que você consiga entender e utilizar o Git minimamente bem para trabalhar num projeto de TI.
O que é Git?
Git é um sistema de controle de versão. Com ele é possível que vários desenvolvedores contribuam no desenvolvimento de um mesmo sistema sem o risco de perder arquivos ou linhas de código. Com Git é possível manter um histórico de alterações do projeto e descentralizar o processo de desenvolvimento.
Por que Git?
Git não é o único sistema de controle de versão existente, então porque ele é tão falado e necessário no universo de desenvolvimento de sistemas? Git possui uma arquitetura distribuída, isso significa que todo desenvolvedor tem uma cópia local do projeto em que está trabalhando, e que ele não precisa de acesso a internet para criar seu histórico de alterações.
Além disso, sua estrutura garante que se minimize os conflitos de código quando mais de um desenvolvedor trabalha no mesmo código. Existem várias outros motivos para o sucesso do Git, mas como esse artigo é sobre o mínimo, vamos encerrar essa sessão por aqui.
Os termos
O repositório
Um repositório é onde está armazenado o seu projeto, com todas as suas branches (calma, logo chegamos lá) e arquivos. O repositório fica armazenado em um servidor Git. Geralmente, esse servidor fica na nuvem, em serviços como bitbucket e github. Quando um desenvolvedor vai trabalhar no projeto, ele faz uma cópia local do repositório em sua máquina.
Entendendo a árvore
Quando criamos um repositório Git, criamos também uma árvore (tree). O código do projeto
inicial é um branch (galho), e a partir dele é possível criar novos branches, cada branch criado é uma cópia exata do seu branch pai no momento da criação. A criação de novos branches normalmente ocorre quando uma nova alteração no código precisa ser realizada. De modo que as alterações que o desenvolvedor realizar em uma branch serão salvas apenas nesta branch.
Commits
Commit é outra palavra bastante utilizada no universo Git. Quando estamos trabalhando em um branch é possível realizar commits (confirmações de alterações). Quando estes commits são realizados é como se tirássemos uma foto daquela branch naquele momento, a partir de então é possível voltar naquela foto e fazer alterações a partir dela sempre que necessário.
A origem
Como mencionado anteriormente, o Git é um sistema distribuído, ou seja o desenvolvedor possuirá uma cópia local do repositório em sua máquina. Quando ele fazer alterações e commits no seu repositório essas alterações serão salvas localmente. Para que outros desenvolvedores tenham acesso às essas alterações é necessário enviá-las para a origem, que nada mais é que a cópia original armazenada no seu repositório Git.
Merges ou junções
Quando um desenvolvedor quer reproduzir as alterações de sua branch para outras branches, é necessário que ele faça a junção das branches, conhecido como merge.
Workflow
Algo que confunde muitos iniciantes em Git é o conceito de workflow, ou fluxo de trabalho. Não existe regra universal para quando um novo branch deve ser criado, quando o desenvolvedor deve realizar commits ou até mesmo realizar um merge, tudo isso é definido em conjunto pela equipe de desenvolvimento, esse conjunto de regras é chamado de workflow. Então é muito importante procurar entender o workflow da equipe em que se vai trabalhar, só assim o desenvolvedor saberá em qual branch ele deve trabalhar, em qual branch ele vai fazer merge de suas alterações e quando ele deve fazer commits e merges.
Parte 2
Este artigo pertence a série Explicando o Básico sobre Git. Nessa primeira parte foram apresentados termos e conceitos básicos. Na segunda parte, você irá conhecer os principais comandos de Git utilizados no dia-a-dia de um programador. Confira a parte 2 aqui!