quarta-feira, 18 de janeiro de 2017

Controle de Versão


Fala galera tudo beleza? Começarei a publicar artigos sobre controle de versão (Git, github), sem muito estresse.

Pra começar a falar de controle de versão tentarei explicar de uma forma simplificada o que significa, exemplificando alguns momentos que alguns de vocês já passaram. 

Primeiro é, provavelmente você já deve ter tido cópias e mais cópias de algum projeto só para poder guardar algumas alterações não é mesmo? Afinal, vai que algum cliente decide voltar pra a ideia anterior e você não ter mais aquelas modificações, que problema. Só que isso consequentemente gastava muito de seu HD desnecessariamente.

Segundo, pode ter acontecido de você ter apagado um arquivo importante e pensar que não tem como recuperar. Ai a unica coisa que se pode fazer é chorar e refazer o trabalho todo.

Foi exatamente pra evitar essas coisas que nasceu o "Controle de Versão"! Mas, o que é exatamente?

Controle de versão é um sistema com a finalidade de gerenciar diferentes versões de um documento.

Como assim?

Ele vai ser um sistema responsável de pegar as diferentes modificações ocorridas no seu projeto e criar versões dele, para facilitar que você consiga avançar ou retroceder versões do seu projeto.

Existem dois tipos de sistemas capazes de trazer serviços semelhantes, existe o Git e os outros Sistemas (SVM, coreal, bazar e etc).

Outros Sistemas


Olhando a imagem a cima, temos diferentes versões de um projeto qualquer contendo os arquivos A, B e C. O que acontece? Digamos que eu faço alterações no Arquivo A e arquivo C, ele cria uma versão 2 e verifica as diferenças dos novos arquivos e salva essas diferenças, como o arquivo B não foi modificado a versão dois não irá guardar nenhuma alteração do B. 

Nas outras versões essa mesma lógica é utilizada com todas as letras, porém essa forma é um pouquinho mais complexa, por que se eu quiser retornar algumas versões, você só irá retornar somente as diferenças que ocorreram naqueles arquivos modificados, os que não foram modificados permanecem inalterados.

Git


Aqui no Git, ele faz um pouco diferente, ele não vai verificar por diferenças nos arquivos, ele tira fotos, famosos Snapshots dos estados, os estados dos arquivos da versão 1, 2, 3 e etc como exemplo. E ai ele será responsável por levar todos os arquivos em versão por versão tendo mudado alguma coisa ou não.

Caso o arquivo não seja mudado, ele não copia o arquivo, ele faz um link simbólico indicando "olha não fui alterado mas você precisa de mim".

Com isso fica muito mais fácil de trabalhar com o Git por te dar uma mobilidade maior na hora de trabalhar em uma versão pra outra.

Abraço



,

Nenhum comentário:

Postar um comentário