Introdução ao Git
Introdução ao Git
Neste artigo vamos fazer uma rápida introdução ao Git, sistema de controle de versões mais empregado atualmente no mundo.
Porém, antes de falarmos especificamente do Git em si, vamos relembrar o que é um sistema de versionamento, especialmente os sistemas de controle de versão distribuídos.
Sistema de Controle de Versão Distribuído
Um sistema de controle de versão distribuído é similar aos sistemas centralizados, porém sem necessariamente possuir um servidor central para armazenar o histórico de alterações do projeto. Neste tipo de sistema, cada cliente possui uma cópia do repositório e do histórico de alterações, o que diminui drasticamente a chance de perder o projeto ou partes dele.
Além disso, um SCVD não necessita de conexão de rede permanente para ser utilizado, o que facilita o trabalho dos desenvolvedores e simplifica a infraestrutura necessária no dia-a-dia do trabalho.
Além disso, é possível implementar o conceito de forking – que significa, basicamente, a possibilidade de clonar um projeto já existente, realizar alterações e criar um novo projeto derivado.
Exemplos de sistemas de controle de versão distribuídos incluem:
- BitKeeper
- Git
- Mercurial
A figura a seguir ilustra a arquitetura de um sistema de controle de versão distribuído:
O que é o Git
O Git é um Sistema de Controle de Versão Distribuído amplamente utilizado – o mais utilizado atualmente no mundo. Foi criado por Linus Torvalds em 2005 para substituir o sistema BitKeeper SCM, que tinha acesso gratuito, mas que teve o acesso removido em determinado momento. Era empregado no desenvolvimento do sistema operacional Linux, e acabou se tornando o sistema padrão para controle de versões em desenvolvimento de softwares dos mais diversos tipos e tamanhos.
O Git é Software Livre, distribuído sob a licença GNU GPL V.2.
Vantagens do Git
O Git possui uma série de vantagens em relação a outros sistemas de controle de versão, as quais incluem:
- Permite rastrear alterações com muita facilidade
- Excelente para trabalho em equipes de qualquer tamanho
- Permite fazer revisão em alterações feitas por outros membros
- Sistema de branching aprimorado
- Operação de Merging extremamente simples
- Stashing para testes de features sem interferir em modificações atuais
- Trabalha com snapshots para versionamento
- Histórico com autenticação criptográfica
Entre outras.
Exemplos de projetos que usam Git
Uma quantidade gigantesca de projetos empregam git atualmente, desde pequenos projetos acadêmicos até softwares de uso massivo, como por exemplo:
E muito, muito mais.
Sistema de Três Estados do Git
Uma das principais características do Git é seu sistema de três estados. Neste sistema, existem três estados nos quais um código em desenvolvimento pode se encontrar:
- Estado Modificado: Snapshot atual no qual o trabalho é feito no momento. Arquivos no Diretório de Trabalho.
- Estado Preparado: Os arquivos modificados são marcados em sua versão atual, pronta para ser armazenada no banco de dados. Arquivos no Staging Area.
- Estado Consolidado: Dados são salvos no Repositório (Banco de dados) onde o histórico é armazenado. Esse estado é compartilhado. Arquivos no Diretório do Git.
A ilustração a seguir mostra o fluxo dos três estados de arquivos do git.
Algumas das características básicas de cada estado são apresentadas a seguir:
Estado Modificado
- Arquivos adicionados, modificados ou removidos são marcados como modificados.
- Indica que um arquivo sofreu alterações.
- Indica também que estão diferentes em relação à última versão que está armazenada no banco de dados.
Estado Preparado
- Arquivo é enviado para a área de preparação antes de ser consolidado.
- Os arquivos entram neste estado após uma instrução git add
- Assim, se tornam preparados para serem versionados.
Estado Consolidado
- Os arquivos preparados são salvos em definitivo após a execução de uma instrução git commit
- Uma nova imagem é salva no histórico, contendo o estado dos arquivos salvos.
- Arquivos não podem ser consolidados se ainda estiverem no estado modificado.
Nos próximos artigos vamos estudar esses estados com mais detalhes, e aprender como utilizar os comandos do git para transferir os arquivos de um estado para outro.
Fluxo de Operação do Git
O fluxo de operação dos arquivos no git é, basicamente, o seguinte:
- Os arquivos são criados, modificados ou excluídos
- Arquivos que serão incluídos no snapshot são adicionados na área de staging
- Snapshot é criado
- Adicionar modificações ao banco de dados
- Assim, um arquivo vai do estado modificado para staged e então para commited.
Esse fluxo também será estudado com detalhes em nossas próximas lições.
Referências
- Tsitoara, M. Beginning Git and GitHub, 1ª edição, 2019. Editora Apress
- Schacon, S. Pro Git, 2ª edição. Editora Apress
- Git Official Documentation – https://git-scm.com/doc
No próximo artigo vamos mostrar como baixar e instalar o Git em seu computador.
Enquanto isso, aproveite para assistir ao vídeo introdutório sobre Git da Bóson Treinamentos:
Escreva um comentário