Antes de mais nada, todo esse guia é baseado no livro "Pro Git"(incluindo a fonte das imagens) que pode ser baixado na versão PDF aqui e na versão EPUB aqui. O livro é GRATUITO, então se você sabe inglês e quer se aprofundar mais esse é o caminho.
Arquitetura e Funcionamento
O Git é um VCS(Version Control System) utilizado amplamente para o processo de desenvolvimento de software. As ferramentas VCS registram as mudanças em um conjunto de arquivos e são responsáveis principalmente pela edição de arquivos por mais de uma pessoa "ao mesmo tempo", além disso também vem com ferramentas para resolver conflitos de versões e outras mais.
De maneira bem simplória o Git é uma espécie de Google Drive com versionamento. Diferente de outros VCS de mercado o Git trabalha com o arquivo completo para cada versão diferente criada ao longo do tempo, já os outros trabalham salvando apenas as alterações(também chamada de delta) dos arquivos alterados.
Sempre que um commit(ou "Salvamento do estado", bem feio rsrs) do projeto é feito o Git cria uma snapshot do estado atual de todos os arquivos e grava uma referência desse estado(uma espécie de ID). Se um arquivo tem uma alteração, a cópia é feita, senão, ele não grava novamente o arquivo, ele simplesmente faz uma referência(link) para o arquivo do commit anterior.
Estado dos arquivos
O ciclo de vida dos arquivos no Git são 3:
- Modified - Os arquivos foram alterados mas as mudanças não foram confirmadas;
- Staged - Mudanças foram confirmadas para estar no próximo commit;
- Commited - Dados estão salvos na base local.
Outro ponto importante são as seções de um projeto:
- Working Directory - Representa uma versão das muitas que um projeto pode ter. Os arquivos são descompactados da base de dados do Git e são colocados no disco para você usar;
- Staging Area - É simplesmente um arquivo dentro do diretório do Git que contém as informações de modificações que serão incluídas no próximo commit, uma espécie de índice;
- Repository/Git Directory - Local onde o Git guarda os metadados e base do projeto. Essa é a parte mais importante e é o que é copiado quando clonamos um repositório.
Basicamente o Workflow fica assim(observando a imagem acima):
- Você esta no seu Working tree e faz alterações em alguns arquivos do seu código;
- Você escolhe quais dessas mudanças farão parte do commit e adiciona elas a Staging Area;
- Você faz o commit, que tira uma snapshot dos arquivos da maneira que eles estão na sua Staging Area e os armazena permanentemente ao seu Git Directory.
Depois disso o fluxo se reinicia, com você fazendo novas alterações, escolhendo quais vai commitar e de fato fazendo o commit.
Por enquanto é isso nos vemos na próxima!
Top comments (0)