Como usar o Git?

Seja no desenvolvimento de novos softwares ou na manutenção de sistemas, é comum ter mais de uma pessoa, às vezes grandes equipes, editando arquivos de código fonte. Muitas dessas edições necessitam ser realizadas paralelamente no mesmo arquivo, inclusive por pessoas em projetos diferentes. Nesses cenários, fica a dúvida: como gerenciar as contribuições de diferentes desenvolvedores ao longo do tempo? O controle de versão há muito tempo se tornou imprescindível no desenvolvimento de software justamente por fornecer uma solução para esses dilemas. No entanto, a simples adoção de uma ferramenta de controle de versão não é suficiente para o sucesso. Com o grande número de ferramentas, cada qual tecendo seus próprios conceitos e paradigmas no versionamento de artefatos, a única maneira de ser bem-sucedido nessa tarefa é conhecendo bem o que cada ferramenta oferece, saber diferenciar os conceitos por trás de cada ferramenta e definir a que melhor se encaixa no contexto em questão. Este artigo, além de explorar o correto uso do Git – uma das ferramentas mais populares atualmente para controle de versão.

Em muitas equipes de desenvolvimento há dois sentimentos que vem se tornando muito comuns: o receio de fazer alterações no código que possam quebrar outras funcionalidades e o receio de compilar um projeto com código a mais ou código a menos. Além disso, geralmente esses códigos são repletos de comentários documentando detalhadamente e de forma exaustiva aspectos que não deveriam ser registrados em comentários, tais como relacionar a inclusão de uma variável a um projeto específico.

Uma solução antiga para esses problemas é o versionamento de controle, que visa dar segurança aos programadores em relação às versões corretas a serem compiladas e fornecer comentários relacionados as alterações implementadas na própria ferramenta de controle de versão, eliminando assim a complexidade de um código poluído repleto de explicações e o receio dos desenvolvedores de estarem alterando versões erradas do sistema.

Entretanto, mesmo em projetos que fazem uso de versionamento, esses sentimentos insistem em fazer parte do cotidiano das pessoas envolvidas e não é raro a ocorrência de problemas decorrentes do controle de versão. Mesmo com ferramentas os problemas ainda ocorrem, o que evidenciam o fator humano como causa, em boa parte, devido à falta de entendimento por completo do fluxo de trabalho do controle de versão ou da ferramenta adotada pela equipe. É comum, por exemplo, vermos pessoas acostumadas a usar o SVN sem entender seu fluxo de trabalho e migrarem para o Git pensando ser a mesma coisa e vice-versa. Esses equívocos são os grandes geradores de problemas em relação ao versionamento e alimentam o receio da equipe em mexer no código, especialmente no Git, onde o erro mais comum é fazer o commit pensando que as alterações serão enviadas para o servidor de controle de versão como acontece no SVN.

Tendo como ponto de partida a necessidade do entendimento, tanto conceitual quanto prático das ferramentas de controle de versão para a solução desses cenários, esse artigo abordará os diferentes tipos de controle de versão a fim de fornecer uma base conceitual para se entender o fluxo de trabalho e focará no Git, mostrando como o usá-lo da maneira correta.

Controle de Versão com Git

Boa parte das tarefas profissionais que temos no dia a dia giram em torno de uma série de interações com algum tipo de conteúdo, que varia de acordo com a função de cada indivíduo. Esse conteúdo pode assumir muitas formas, tais com dados financeiros em uma planilha, textos e relatórios em documentos de texto, apresentações e, no caso dos programadores, código fonte em arquivos de texto. As tarefas diárias dos profissionais, em geral, podem ser resumidas em um ciclo de criar conteúdo, salvar, editar e salvar o conteúdo novamente, como ilustra a Figura 1.

Ciclo de vida de arquivos nas tarefas diárias da
maioria dos profissionais
Figura 1. Ciclo de vida de arquivos nas tarefas diárias da maioria dos profissionais

Esse ciclo pode se tornar muito complexo em pouco tempo em relação ao número de pessoas que compartilharão informações e necessidades em usar e alterar o mesmo conteúdo. I ...

Quer ler esse conteúdo completo? Tenha acesso completo