git --controle-de-versão-rápido
-
Upload
helio-medeiros -
Category
Documents
-
view
888 -
download
60
description
Transcript of git --controle-de-versão-rápido
![Page 1: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/1.jpg)
@helmedeiros
--tudo-é-local
--distribuido-é-o-novo-centralizado--controle-de-versão-rápido
--fácil-merge
--fácil-branch
--seguro
![Page 2: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/2.jpg)
Git é sistema de controle de versão distribuído livre e de código aberto, projetado para lidar com
tudo, de pequenos a grandes projetos, com velocidade e eficiência.
http://git-scm.com/
![Page 3: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/3.jpg)
!=
![Page 4: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/4.jpg)
Considerando a visão de LINUS TORVALDS
“controle de versão do jeito que
ele realmente deveria ser”
“cvs ou baseado em suas
primitivas?”
![Page 5: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/5.jpg)
TALVEZ, NÃO SEJA UM BOM PONTO DE PARTIDA... BLASFEMAR SOBRE OS SISTEMAS DE CONTROLE DE VERSÃO
USADOS... MAS... HUMMM...
PRECISAMOS IR EM FRENTE!
![Page 6: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/6.jpg)
Quais são as vantagens?
pequeno e rápido
branching e merging distribuido garantia de
integridade
área de conferência gratuito código aberto
http://git-scm.com/
![Page 7: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/7.jpg)
#1Git permite e incentiva a criação de vários branchs locais, que podem ser totalmente independentes um do outro.
BRANCHING E MERGING
prod
SIM usando trunk?
SIM
NÃOTAG?
NÃO cria tag
trunk
restaura
trunk
tag
cria branch
trunk
avisou?dev
homolok?
reintegrate
trunk
branch
cria tag
trunk
local
![Page 8: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/8.jpg)
BRANCHING E MERGINGAlternância de contexto sem atrito
Criar um branch para testar uma idéia, comitar algumas vezes, voltar para onde você iniciou, aplicar um patch, voltar para onde você estava experimentando, e mesclá-los!
Linhas de versionamento especifica Ter uma linha de versionamento que sempre contém apenas o que vai para a produção, outra que você mescle para testes,
e várias outras menores para o dia a dia de trabalho.
Workflow baseado em funcionalidadesCriar um novo branch para cada nova funcionalidade que vai trabalhar, para que você possa facilmente alternar entre eles,
em seguida, exclua cada linha de versionamento quando essa funcionalidade for incorporada a sua linha principal.
Experimentação descartávelCriar um branch para experimentar, perceber que não resolverá o problema, e apenas excluí-lo - abandonar o trabalho sem
que ninguém tenha o visto.http://git-scm.com/
![Page 9: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/9.jpg)
#2Git é rápido. Com o Git, quase todas as operações são realizadas localmente, dando-lhe uma vantagem enorme
PEQUENO E RÁPIDO
![Page 10: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/10.jpg)
PEQUENO E RÁPIDOCommit Arquivos(A)
Add, commit e push 113 arquivos modificados
00.751.52.253
git svn
2.6
0.64
Commit Imagens(B)Add, commit e push de 1000 imagens de
1Kb
07.51522.530
git svn
24.7
1.53
Diff LocalDiff de 187 arquivos alterados locais
contra o último commit.
00.2750.550.8251.1
git svn
1.09
0.25
Diff ArquivosDiff entre versão atual e outra 4 commits
atrás (269 alterados)
01234
git svn
3.99
0.25
Diff TagsDiff entre duas tags (v1.9.1.0/v1.9.3.0 )
022.54567.590
git svn
83.57
1.17
http://git-scm.com/
UpdatePull do cenário do Commit A
(113 arquivos alterados)
00.751.52.253
git svn
2.82
0.9
![Page 11: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/11.jpg)
PEQUENO E RÁPIDOLog (Todos)
Log de todos os commits (26.056 commits)
050100150200
git svn
169.2
0.52
Log (50)Log dos últimos 50 commits
00.10.20.30.4
git svn
0.38
0.01
BlameAnotações em um único arquivo (array.c)
01234
git svn
3.04
1.91
http://git-scm.com/
Log (Arquivo)Log do histórico de um arquivo (array.c -
483 revissões)
022.54567.590
git svn
82.84
0.6
![Page 12: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/12.jpg)
PEQUENO E RÁPIDOCommit Arquivos(A)
Add, commit e push 113 arquivos modificados
00.751.52.253
git svn
2.6
0.64
Commit Imagens(B)Add, commit e push de 1000 imagens de
1Kb
07.51522.530
git svn
24.7
1.53
Diff LocalDiff de 187 arquivos alterados locais
contra o último commit.
00.2750.550.8251.1
git svn
1.09
0.25
Diff ArquivosDiff entre versão atual e outra 4 commits
atrás (269 alterados)
01234
git svn
3.99
0.25
Diff TagsDiff entre duas tags (v1.9.1.0/v1.9.3.0 )
022.54567.590
git svn
83.57
1.17
http://git-scm.com/
UpdatePull do cenário do Commit A
(113 arquivos alterados)
00.751.52.253
git svn
2.82
0.9
O GIT É MAIS RÁPIDO QUE O SVN
4x 16x 4x
16x 71x 3x
![Page 13: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/13.jpg)
PEQUENO E RÁPIDOLog (Todos)
Log de todos os commits (26.056 commits)
050100150200
git svn
169.2
0.52
Log (50)Log dos últimos 50 commits
00.10.20.30.4
git svn
0.38
0.01
BlameAnotações em um único arquivo (array.c)
01234
git svn
3.04
1.91
http://git-scm.com/
Log (Arquivo)Log do histórico de um arquivo (array.c -
483 revissões)
022.54567.590
git svn
82.84
0.6
O GIT É MAIS RÁPIDO QUE O SVN
325x 31x 138x
1x
![Page 14: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/14.jpg)
#3Em vez de fazer um "check-out" da situação atual do código fonte, você faz um "clone" de todo o repositório.
DISTRIBUIDO
![Page 15: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/15.jpg)
DISTRIBUÍDO
Qualquer Fluxo de trabalhoPor causa da natureza distribuída e do sistema de ramificação do Git, um número quase infinito de fluxos de trabalho pode ser implementado
com relativa facilidade.
Backups MúltiplosMesmo se você estiver usando um fluxo de trabalho centralizado, cada usuário terá um backup completo do servidor principal. Cada uma dessas cópias pode substituir o servidor principal em caso de
um acidente ou de corrupção. Como efeito, não há um ponto único de falha com Git a menos que haja apenas uma única cópia do
repositório.http://git-scm.com/
![Page 16: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/16.jpg)
DISTRIBUÍDO
Fluxo de trabalho ao estilo Subversion
Um fluxo de trabalho centralizado é muito comum, especialmente de pessoas
transitando de um sistema centralizado.
http://git-scm.com/
![Page 17: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/17.jpg)
DISTRIBUÍDO
Fluxo de trabalho distribuido e descentralizado
Para equipes que se sobrepõem a uma estrutura formal de times, o modelo distribuído permite uma organização colaborativa simples e organizada.
http://git-scm.com/
origem
origem
PROJETO OPEN SOURCE 1
origem
origem
PROJETO OPEN SOURCE 2
![Page 18: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/18.jpg)
{DISTRIBUÍDO
http://git-scm.com/
fetch
merge
+origin/master
master
origem
localhost
PULLO comando pull realiza as duas operações, realiza primeiro um fetch trazendo todos os arquivos e em
seguida realiza um merge com o seu repositório local.
![Page 19: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/19.jpg)
DISTRIBUÍDO
http://git-scm.com/
pushorigem
localhost
PUSHO comando push realiza o envio do pacote de
informações do repositório local para o seu par no servidor desejado. Mesmo que o repositório não
exista no servidor em questão.
push notebook
$git push origem projeto1
$git push notebook projeto1
![Page 20: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/20.jpg)
#4É impossível obter qualquer coisa dentro do Git além dos bits exatos que você colocar
GARANTIA DE INTEGRIDADE
![Page 21: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/21.jpg)
GARANTIA DE INTEGRIDADE
Integridade CriptográficaO modelo de dados que o Git usa garante a integridade criptográfica de todos os bits de
seu projeto. Sobre cada arquivo e commit é gerado um checksum e sempre que se for recuperar e realizada a conferencia. É impossível obter qualquer coisa fora do Git além dos
bits exatos você colocar dentro.
http://git-scm.com/
![Page 22: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/22.jpg)
#5Coomits podem ser formatados e revisados ������antes de completar a submissão.
ÁREA DE CONFERÊNCIA
![Page 23: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/23.jpg)
ÁREA DE CONFERÊNCIA
Staging AreaGit tem algo chamado de "staging area" ou "índice", que serve como área intermediária onde
os commits podem ser formatados e revisados ������antes de completar a submissão. Desta forma é possível rapidamente alterar alguns de seus arquivos e comitá-los sem comitar
todos os outros modificados em seu diretório de trabalho, ou ainda ter que listá-los durante a confirmação.
http://git-scm.com/
![Page 24: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/24.jpg)
#6Use o Git em projetos abertos ou proprietários de graça, para sempre.
GRATUITO
![Page 25: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/25.jpg)
GRATUITO
Sob licença de software livre GPLv2 é possívelUsar o Git em projetos abertos ou proprietário de graça, para sempre;
Utilizar os binários do Git em programas abertos ou proprietários;
http://git-scm.com/
![Page 26: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/26.jpg)
#7Baixe, inspecionar e modificar o código-fonte do Git.
CÓDIGO ABERTO
![Page 27: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/27.jpg)
CÓDIGO ABERTO
http://git-scm.com/
Sob licença de software livre GPLv2 é possívelBaixar, inspecionar e modificar o código-fonte do Git;
Fazer alterações proprietárias no Git que você não redistribua publicamente;redistribuir publicamente binários do Git com programas abertos ou proprietários
desde que os mesmo sejam públicos;
![Page 28: git --controle-de-versão-rápido](https://reader031.fdocument.pub/reader031/viewer/2022013110/547ba255b4af9fa0158b4f2a/html5/thumbnails/28.jpg)
Obrigado!@helmedeiros
Fontes:Pro Git - Scott Chacon
Imagens:http://git-scm.com/