Sempre quando alguém começa a "escrever" código, seja algorítmos em C na faculdade, pequenos projetos html/css estáticos ou aplicativos maiores é normal que não sejam versionados.

Mas o que é versionar e por qual motivo preciso versionar ?

O devmedia neste link exibe a seguinte opinião sobre o versionamento:

"Sistemas de controle de versões são ferramentas de apoio aos desenvolvedores cuja principal função é controlar as modificações realizadas em um arquivo de projeto. Ainda possuem um mecanismo automatizado para identificar e controlar as modificações realizadas nos arquivos de um projeto ao longo do tempo, garantindo integridade e rastreabilidade das modificações. O controle de versões é visto como uma extensão natural do processo de desenvolvimento, permitindo que se possam realizar modificações paralelas e de forma coerente e padronizada, especialmente se tratando de equipes geograficamente dispersas. "

Seguindo este conceito, vamos supor que temos um projeto com 3 contribuintes ou desenvolvedores:

  • João — Desenvolvedor Java Australiano.

  • Filipe — Desenvolvedor Front-End Brasileiro.

  • Maria — Desenvolvedora Javascript da Inglaterra.

Seria praticamente impossível manter o fluxo de entrega de funcionalidades sem um controle de versão.

Como Maria poderia testar suas implementações em Javascript utilizando o Back-end desenvolvido por João e como Filipe traria os dados tratados pelas implementações dos outros dois desenvolvedores para exibir aos usuários ?

Através de um projeto no qual o código esteja versionado, facilmente cada um dos três desenvolvedores poderiam baixar o código fonte publicado pelos outros dois e trabalhar normalmente em suas atividades, sabendo que a sincronia poderá ser feita facilmente baseando-se uma ferramenta que traz segurança e conforto aos membros do projeto.

Git

O site Tableless cita que o" Git é um sistema de controle de versão de arquivos. Através deles podemos desenvolver projetos na qual diversas pessoas podem contribuir simultaneamente no mesmo, editando e criando novos arquivos e permitindo que os mesmos possam existir sem o risco de suas alterações serem sobrescritas."

O git foi criado por volta de 2005 por ninguém menos que Linus Torvalds, criador do Linux, núcleo do GNU/Linux e tem como uma de suas maiores vantagens a facilidade de criação e manuseio de ramificações (Branch) do projeto. O conceito de Branch pode ser tratado em uma publicação futura, devido aos detalhes e importância dentro dos conceitos do Git.

Github

O mesmo site Tableless ainda cita que o Github "é um serviço web que oferece diversas funcionalidades extras aplicadas ao git. Resumindo, você poderá usar gratuitamente o github para hospedar seus projetos pessoais. Além disso, quase todos os projetos/frameworks/bibliotecas sobre desenvolvimento open source estão no github, e você pode acompanhá-los através de novas versões, contribuir informando bugs ou até mesmo enviando código e correções. Se você é desenvolvedor e ainda não tem github, você está atrasado e essa é a hora de correr atrás do prejuízo."

Depois dessa descrição, fica até difícil procurar algo mais a dizer. :D

Concluindo…

Versionamento é indispensável, alunos e profissionais da área de desenvolvimento que não utilizam ferramentas de versão de software acabam ficando pra trás no mercado. Por isso é importante buscar conhecimento e se aprofundar em versionamento. O Git e o Github proporcionam uma experiência fácil e grátis para iniciar nesse novo mundo mágico de trabalho em equipes e fluxos para manter o código fonte de um projeto atualizado.

Quem quiser iniciar, pode ver este link explicando a instalação do Git,. Crie sua conta no Github e veja um pouco mais desses conceitos de branch. Pode iniciar com uma coisa pequena, um arquivo Readme.md para exemplificação do projeto e alguns arquivos css, html, javascript ou de qualquer linguagem que lhe agrade, o importante é começar no mundo Open Source.

Referências

Sistemas de controle de versão - Revista Engenharia de Software Magazine 49
*De que se trata o artigo: Aborda os conceitos de um sistema de controle de versões através da implementação e configura…*www.devmedia.com.br

Tudo que você queria saber sobre Git e GitHub, mas tinha vergonha de perguntar - Tableless
*por Daniel Schmitz Compartilhar no Twitter Compartilhar no Facebook Crie, compartilhe, acompanhe e versione projetos…*tableless.com.br

Git - O que é um Branch
*Para compreender realmente a forma como o Git cria branches, precisamos dar um passo atrás e examinar como o Git…*git-scm.com

Linus Torvalds
*Linus Torvalds pertence à comunidade dos Sueco-Finlandeses, um estrato da população representando 5,5% dos habitantes…*pt.wikipedia.org