Top Banner
Controle de Versão Inteligente por Adriano Rocha
39

Git - Controle de Versão Inteligente

Jun 27, 2015

Download

Technology

Adriano Rocha

Palestra apresentada no TechDay 2013 em Tubarão, sobre git.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Git - Controle de Versão Inteligente

Controle de Versão Inteligente

por Adriano Rocha

Page 2: Git - Controle de Versão Inteligente

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.

Page 3: Git - Controle de Versão Inteligente

…ou seja…Se você fizer algo de errado…

…saberemos que foi você!

Page 4: Git - Controle de Versão Inteligente

Controle de VersãoLocal• Primeiro utilizava-se de copiar arquivos em pastas.

Page 5: Git - Controle de Versão Inteligente

Controle de VersãoLocal

• 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)

Page 6: Git - Controle de Versão Inteligente

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

Page 7: Git - Controle de Versão Inteligente

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

Page 8: Git - Controle de Versão Inteligente

Sistema de Controle de Versão DistribuídoQuando 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

Page 9: Git - Controle de Versão Inteligente

Sistema de Controle de Versão Distribuído

Page 10: Git - Controle de Versão Inteligente
Page 11: Git - Controle de Versão Inteligente

Sobre o Git

• Inicialmente projetado e desenvolvido por Linus Torvalds e o time de desenvolvimento do Kernel do Linux

• Ênfase em velocidade

• Ótimo suporte para desenvolvimento não linear

• Totalmente distribuído

• Gratuito • Open

Source

Page 12: Git - Controle de Versão Inteligente

Snapshots e não diferenças

CVS, SVN,…

Git

Page 13: Git - Controle de Versão Inteligente

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.

Page 14: Git - Controle de Versão Inteligente

Integridade de Arquivos

Antes de efetivar suas alterações é feita uma

validação com checksum

Impossível alterar um arquivo sem que o Git saiba

Mecanismo de checksum SHA-1

Mescla de alterações quase transparente ao usuário

Page 15: Git - Controle de Versão Inteligente

…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!

Page 16: Git - Controle de Versão Inteligente

Codificou e mandou pro repositório?

Pode tomar seu café em paz!

Commit, push? Hell yeah!

Page 17: Git - Controle de Versão Inteligente

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

Page 18: Git - Controle de Versão Inteligente

Aí eu te pergunto…

Page 19: Git - Controle de Versão Inteligente

E se a energia do prédio aonde você trabalha

caisse e voltasse somente depois de 1

semana?!

Page 20: Git - Controle de Versão Inteligente

Vamos para um exemplo rápido e prático

Page 21: Git - Controle de Versão Inteligente

Você vai viajar pra Sydney e vai passar algumas horas sem fazer nada (aproximadamente 20 horas)…

Page 22: Git - Controle de Versão Inteligente

Então você tem decide que quer aproveitar bem todo esse tempo pra trabalhar em um projeto

Page 23: Git - Controle de Versão Inteligente

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…

Com SVN, CVS…

Page 24: Git - Controle de Versão Inteligente

Com SVN, CVS…

Quando você finalmente chega no Hotel você conecta seu notebook na internet e faz um commit e manda tudo pro servidor.

Page 25: Git - Controle de Versão Inteligente

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.

Page 26: Git - Controle de Versão Inteligente

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)

Page 27: Git - Controle de Versão Inteligente

Com SVN, CVS…

Page 28: Git - Controle de Versão Inteligente

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…

Com Git

Page 29: Git - Controle de Versão Inteligente

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…

Page 30: Git - Controle de Versão Inteligente

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.

Page 31: Git - Controle de Versão Inteligente

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.

Page 32: Git - Controle de Versão Inteligente

Com Git

Page 33: Git - Controle de Versão Inteligente

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?

Page 34: Git - Controle de Versão Inteligente
Page 35: Git - Controle de Versão Inteligente

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.

Page 36: Git - Controle de Versão Inteligente

Ai alguém vira e pergunta..

Que empresa em sua sã consciência entregaria o código fonte dos seus programas para terceiros?

Page 37: Git - Controle de Versão Inteligente

Bem…

Page 38: Git - Controle de Versão Inteligente

Perguntas?!

Page 39: Git - Controle de Versão Inteligente

Obrigado

Adriano Luís Rocha

Email: [email protected]

Linked In: http://www.linkedin.com/in/adrianoluis

GitHub: http://github.com/adrianoluis