A partir da década de 1970, até início do ano 2000, muitos profissionais (principalmente de software) encararam o desafio de desenvolver projetos de uma maneira complexa.
Existiam 3 problemas principais:
-
Projetos de difícil gestão e liderança.
-
Riscos de que o código de uma pessoa pudesse introduzir uma sobrescrita no avanço formal da equipe.
-
Centralização e baixa probabilidade de trabalho remoto.
Como resposta a este cenário complexo, foram criados diferentes Sistemas de Controle de Versão (SCV):
-
SCCS (1972)
-
RCS (1982)
-
CVS (1986-1990)
-
SVN (2000)
-
BitKeeper SCM (2000)
-
Mercurial (2005)
Apesar de que a evolução acontecia com sucesso, foi com a última tecnologia que o quadro ficou completo, com todas as peças encaixadas de forma funcional e útil. Além disso, a internet como meio de comunicação principal ofereceu tudo para que essa tecnologia fosse de destaque no mundo inteiro.
A chegada de Git no ano 2005 mudou a forma como gerenciamos o código, nos comunicamos e colaboramos com profissionais em projetos de software. Criado por Linus Torvalds, hoje Git faz sucesso na implementação de startups e empresas do setor tecnológico porque oferece segurança, comodidade e velocidade. Apesar de que os outros SCV ainda são utilizados, o Git conseguiu se posicionar no mercado e tudo parece indicar que continuará na conquista. Um grande número de empresas reconhece o prestígio do Git, além disso, a plataforma conta com apoio da legião de fãs do GitHub, uma comunidade que cresce dia a dia.
Qual é o propósito dos sistemas de controle de versão?
Gerir os projetos de forma eficiente e rápida. Possibilitar o retorno a um estado anterior do projeto e conhecer o histórico do projeto ao longo do tempo, desde o começo até a última atualização.
Podemos pensar nos SCV como máquinas do tempo, que permitem voltar a qualquer momento do seu projeto. Por exemplo, o projeto Mestres da web começou com uma primeira versão funcional do website. Mas foi muito tranquilo. Com o passar do tempo continua melhorando e hoje conhecemos uma sexta versão. Se um desenvolvedor novo quer conhecer o trabalho e o processo durante todos esses anos, ele pode conferir sem problemas toda a informação do projeto, pois o Git foi utilizado desde o começo e conserva o registro histórico das mudanças e evoluções.
Cada nova versão introduz melhorias no código, imagens, organização das pastas, etc. O repositório (histórico) criado pelo Git salva e conserva TUDO. É como criar um livro do teu projeto!
Vamos fazer uma outra analogia, temos o famoso CTRL + Z. Quando você está no Word, às vezes acontece que você precisa voltar ao estado anterior porque cometeu um erro. O histórico temporal do Word permite proceder de forma ágil com os erros. Os SCV seguem o mesmo objetivo, a diferença é que os SCV têm um ecossistema para a gestão de cada mudança.
Como realizam a gestão? A metodologia segue 3 bases:
-
Registro de cada modificação do projeto. Cuidam e vigiam todas as modificações.
-
Permitem acesso ao registro. Você pode gerir, compartilhar, administrar e editar o registro do seu projeto.
-
Você pode navegar nas diferentes versões do seu projeto.
Um SCV pode localizar arquivos HTML, CSS, JS, Py, Rb, entre outros, porque é um código fonte de texto plano. No caso das imagens, PDFs, Zip, também pode localizá-los, mas só de forma binária (abre uma imagem com Sublime Text e apresenta a informação no formato binário). Nestes últimos elementos, você não pode identificar onde estão as modificações, porém o Git pode localizá-las e apresentá-las junto com o projeto.
Se você quer saber mais sobre o melhor sistema de versões existente atualmente, não pode deixar de lado o curso de Git e GitHub na Platzi. Comece agora mesmo a criar e gerir seus projetos de forma fácil e rápida!