Atividade de Projeto Estruturado 11 - Unipar EAD
Git é uma ferramenta. Foi desenvolvida em 2005, por Linus Torvalds, o criador do Linux, igualmente nos mesmos moldes de software livre e para auxiliar no desenvolvimento do próprio sistema operacional. Sua função é realizar o controle de versão de arquivos em um projeto. O Git não foi o primeiro software para versionamento e não é o único do mercado, embora seja o mais usado. Seu diferencial, além de ser um software livre, gratuito e estável, é utilizar-se do modelo de repositórios distribuídos, de modo que é possível de ser usado mesmo quando a estação de trabalho não está conectada à internet ou a um servidor local.
Versionamento, ou controle de versão, é uma técnica de gerenciamento das alterações ocorridas em um repositório, que pode conter arquivos de texto, documentos, código-fonte ou uma mistura de vários tipos diferentes de arquivos. O versionamento permite registrar as alterações ocorridas no repositório e as modificações individuais realizadas em qualquer dos arquivos incluídos nele, permitindo ainda identificar quando e como as alterações ocorreram em cada arquivo, fazer a comparação entre diferentes versões, a recuperação de arquivos excluídos, desfazer alterações e até realizar o retorno a versões anteriores. O versionamento não apenas protege os arquivos do projeto, mas também permite documentar todo o histórico dessas alterações.
O controle de versionamento já um default na indústria de softwares, de modo que não o utilizar sequer chega a ser uma opção. Assim, cabe ao desenvolvedor utilizar o sistema de versionamento que é o padrão escolhido pela empresa e neste caso, a maior probabilidade é de que seja o Git, pois esta ferramenta detém mais de 70% do market share. Caberá, portanto, aos desenvolvedores independentes escolher qual ferramenta de versionamento utilizar, sendo que as mais utilizadas são o Git e o SVN. No entanto, cabe salientar que o Git, além das características já informadas, possui integração com o Github, permitindo a participação remota de outras pessoas no processo de desenvolvimento.
Do ponto de vista do desenvolvedor, o Git ser uma ferramenta gratuita, estável e de software livre já representa uma grande vantagem, porém há outras. O modelo de repositórios distribuídos entrega grande performance aos seus usuários, especialmente nas ações de branching e merging. É importante também mencionar a segurança, pois o Git utiliza-se de criptografia para realizar o versionamento, de modo a garantir a integridade e confiabilidade das informações armazenadas. Outra vantagem, já mencionada, é a integração do Git com a plataforma Github, que além de um repositório em nuvem, também funciona como uma rede social de desenvolvedores de software.
A importância e a utilidade podem variam tratando-se de o desenvolvimento de um software por um único programador, tal como um projeto pessoal, ou do desenvolvimento por uma equipe. No caso de um programador solo a vantagem será mais restrita ao histórico de alterações e possibilidade de retorno a uma versão anterior, enquanto outras funcionalidades ganham maior destaque no caso de equipes, como a possibilidade de fundir (merge) duas versões diferentes, alteradas por integrantes distintos, gerando um único código consolidado. Além disso, o controle de versão permite evitar a duplicação desnecessária de arquivos e desfazer alterações que se mostrarem problemáticas ou que não trazem as melhorias necessárias.
6. Cite pelo menos três ferramentas de controle de versão e faça um breve detalhamento sobre cada uma delas.
Muito embora o Git tenha um amplo domínio do mercado, ele não é o único software de controle de versão. Como seus concorrentes podemos citar:
- CVS: foi a primeira ferramenta, surgindo em 1968 e, apesar de antiga, tem como principal vantagem ser uma ferramenta de fácil utilização;
- TFS: é a ferramenta desenvolvida pela Microsoft. Tem como diferenciais a possibilidade de utilização nas modalidades centralizada ou distribuída e a integração com os produtos do Office da própria Microsoft;
- Mercurial: funciona com controle de versionamento distribuído. É rápida e atende bem a equipes grandes e é utilizada por grandes empresas como o Facebook.