O documento descreve os principais tipos de sistemas de controle de versão, como local, centralizado e distribuído. Ele se concentra no Git, explicando suas vantagens em relação a outros sistemas como fazer commits locais e armazenar snapshots ao invés de apenas diferenças. O Git permite que desenvolvedores trabalhem offline e mergir alterações de forma transparente.
2. O que é Controle de Versão?
• É a forma inteligente de
manter uma copia segura
dos arquivos de um projeto.
• Permite que você altere um
arquivo e, se fizer algo de
errado, volte atras.
• Guarda as informações de quem fez ou desfez uma
funcionalidade.
3. …ou seja…
Se você fizer algo de errado…
…saberemos que foi você!
4. Controle de Versão
Local
• Primeiro utilizava-se de copiar arquivos em pastas.
5. Controle de Versão
Local
• Depois foi criada uma estratégia
de guardar as mudanças em
banco de dados
• RCS foi a ferramenta de
controle de versão mais
conhecida no mundo, no
entanto ela trabalhava apenas
com arquivos individuais e não
com grupo de arquivos
(projetos)
6. Sistema de Controle de
Versão Centralizado
As versões dos arquivos
são armazenadas em
um servidor
Os usuários copiam esses
arquivos, alteram e
mandam novamente para
o servidor, bem como
copiam as alterações de
outros usuários
7. Sistema de Controle de
Versão Centralizado
Desvantagens
• Os arquivos estão centralizados no servidor.
• É necessário estar conectado a rede do servidor
para efetuar o “commit” das suas alterações
• Se você estiver fora da rede os
arquivos não estão mais sobre o
controle de versão
8. Sistema de Controle de
Versão Distribuído
Quando você conecta ao
repositório você adquire uma
copia completa, com todas as
revisões dos arquivos
Você pode conectar o seu repositório
com o de outros usuários e trocar
arquivos sem perder o histórico principal
11. Sobre o Git
• Inicialmente projetado e desenvolvido por
Linus Torvalds e o time de desenvolvimento do
Kernel do Linux
• Totalmente distribuído
• Ótimo suporte para desenvolvimento não linear
• Ênfase em velocidade
• Gratuito
• Open Source
13. Operações Locais
Git possui propriedades
abençoadas se comparado ao
SVN e ao CVS.
Todas as operações com o
repositório são
praticamente instantâneas,
desde consulta de histórico
até commit.
14. Integridade de Arquivos
Antes de efetivar suas
alterações é feita uma
validação com checksum
Mecanismo de
checksum SHA-1
Impossível alterar um arquivo sem que o Git saiba
Mescla de alterações quase transparente ao usuário
15. …só adição de dados!
Diferente do SVN e do CVS, o Git
não guarda só as diferenças do seu
arquivo mas sim uma imagem
completa dele
Você tem que ser praticamente um Jedi
Sayajin para conseguir fazer algo que de
errado e seja irreversível…
…ou não ter a menor idéia do que esta fazendo!
16. Codificou e mandou pro repositório?
Commit, push? Hell yeah!
Pode tomar seu café em paz!
17. Com Git
Com Git todo o trabalho é local, os commits são sempre feitos no
seu repositório local e depois, através do método push envia
todos os seus snapshots para um servidor que se responsabiliza
de organiza-los.
Com SVN, CVS
Todo histórico de alterações são armazenadas no servidor
tornando necessário estar conectado para disponibilizar suas
alterações para o Sistema de Controle de Versão
21. Você vai viajar pra Sydney e vai passar algumas
horas sem fazer nada (aproximadamente 20
horas)…
22. Então você tem decide que quer aproveitar bem
todo esse tempo pra trabalhar em um projeto
23. Com SVN, CVS…
Você então pega seu notebook e codifica ate sair
fumaça do teclado, alterando vários arquivos e
adicionando um monte de funcionalidades ao seu
projeto…
24. Com SVN, CVS…
Quando você finalmente chega no Hotel você
conecta seu notebook na internet e faz um commit
e manda tudo pro servidor.
25. Com SVN, CVS…
…daí então o seu colega de trabalho liga e fala que
você foi o responsável por “quebrar a build” do
projeto que estava prestes a ser entregue pro
cliente.
26. Com SVN, CVS…
Então você se desespera pois você mexeu em vários arquivos e
adicionou outros vários arquivos e também não consegue ir
voltando nas versões pois, teoricamente, só existem 2 versões:
antes do seu commit e depois do seu commit (e todas aquelas
horas no vôo se resumem a um commit apenas)
28. Com Git
Você pega seu notebook e começa a codificar, com a
mesma intensidade, porém com vários commits, branchs
para teste, tags para versão, etc…
29. Com Git
Quando você finalmente chega no Hotel você
conecta seu notebook na internet e faz o push dos
seus commits para o servidor da empresa…
30. Com Git
…daí então o seu colega de trabalho liga e fala que
você foi o responsável por “quebrar a build” do
projeto que estava prestes a ser entregue pro
cliente.
31. Com Git
Como você usou Git você pode navegar entre as versões que
foram criadas dos arquivos, ver quando foram adicionados no
repositório e assim, pode achar o problema com mais facilidade.
33. Explosão Git
Mas por que somente agora tantas empresas, start-ups,
profissionais e projetos open source estão
adotando o Git com o Sistema de Controle de
Versão de seus projetos?
34.
35. O que é GitHub
Servidor de repositórios
Rede Social
Gerenciador de projetos em questões técnicas.
Wikis, Code Review, Gráficos, Issue Tracker e
muito mais.
36. Ai alguém vira e pergunta..
Que empresa em sua sã consciência entregaria o
código fonte dos seus programas para terceiros?