SlideShare uma empresa Scribd logo
1 de 149
Baixar para ler offline
Version all
the things
Andréa Zambrana
front-end @ via varejo [mobile]
@akfzambrana
http://andreazambrana.com.br
@abc_developers
2017.abcdevelopers.org
@frontladiesabc
facebook.com/front-ladies-abc
Alta troca de ideias sobre desenvolvimento
http://slackfemugabc.herokuapp.com/
Controle de versão
O que é?
Voltar / recuperar
Conhecer a história
Comparar
De quem é a culpa!
Métodos
ctrl + c, ctrl + v
Compressão (gzip, zip, etc)
Sistemas de controle
de versão
VCS (Version Controller System)
Local
Centralizado
Distribuído
Local
Histórico de revisões
Patch database
A
AB
ABCABC
v1
v2
v3
Centralizado
Z ZA ZA
B
ZA
BC
Ana Carol Bia
r1 r2 r3 r4
+A +B +C
Tronco principal
Vantagens
É simples
Conhecimento sobre
quem faz o que
Maior controle
sobre as alterações
Desvantagem
Dependência
do servidor
Merges
são complicados
Distribuído
v3
v2
v1
Remoto
v3
v2
v1
Ana
+A
v3
v2
v1
Carol
+B +C
Vantagens
Cada pessoa
possui uma cópia do
repositório completo
É possível
trabalhar em paralelo
É rápido
Merges com conflitos
são relativamente
simples de resolver
Funciona off-line
Não íamos
falar sobre Git?
Sistema de controle
de versão distribuído
Linus
Torvalds
Rápido
Design simples
Suporte robusto
para desenvolvimento
não linear
Muitos branchs paralelos
100% distribuído
Consegue lidar
com grandes projetos
Legal, mas porque o
Git é melhor?
Snapshots
Não diffs
Operações locais
Quase todas
Questão
de integridade
SHA-1 hash
Nem é tão importante, né?
Reversível
Os três estados
de um arquivo
Modificado
Modified
Preparado
Staged
Consolidado
Commited
As três áreas
Diretório de trabalho
Working directory
Área de preparação
Staging area
Diretório .git
Repositório
Trabalho .git (Repositório)Preparação
Add
Commit
Checkout
Formas de utilização
Interface gráfica
https://git-scm.com/downloads/guis
Terminal
Console
https://github.com
https://bitbucket.org
Configurações
gitconfig
--system
--global
<sem parámetro>
Sistema
Usuário
Projeto
$ git config --global user.name "Nome
Sobrenome"
$ git config --global user.email
usuario@exemplo.com
$ git config --system core.editor vim
$ git config --list
Comandos
$ git <comando> --help
Na dúvida
Repositório local
Criar um repositório local
$ git init
Clonar um repositório
$ git clone <url>
$ git clone <url> nome
Ver o status dos arquivos
$ git status
Preparando arquivos para commit
$ git add dir/arquivo.txt
$ git add .
$ git rm .
$ git add . -a
Consolidando versão
$ git commit -m “Mensagem”
$ git commit -am “Mensagem”
$ git commit --amend
Visualizando as alterações
$ git diff arquivo.ext
Visualizando a história
$ git log
E para saber de
quem é a culpa?
Visualizando histórico linha a linha
$ git blame arquivo.ext
$ git blame arquivo.ext -L 50
Desfazendo alterações
$ git checkout arquivo.ext
$ git checkout .
Desfazendo commits
$ git reset HEAD~1
$ git reset HEAD~2 --hard
Enviando alterações ao servidor
$ git push
$ git push origin
Sincronizando repositório
$ git fetch
$ git fetch origin
$ git fetch -p
Trazendo alterações do servidor
$ git pull
$ git pull origin master
$ git pull --rebase origin master
Literalmente galhos
Branchs
FeatureZ
Bugfix A
Criando branchs
$ git branch nomeBranch
$ git checkout -b nomeBranch
Atenção!
A branch será uma
cópia da original
Vida que segue!
commit, push, pull...
Trocando de branch
$ git checkout nomeBranch
Excluindo branchs
$ git branch -D nomeBranch
$ git push origin :nomeBranch
Merge
Fundindo branchs
$ git merge nomeBranch
$ git merge --no-ff nomeBranch
Mesclando branchs
Merge fast-forward
Merge no fast-forward
E se der conflito?
Meld
http://meldmerge.org/
colocar print do meld para resolver
conflitos
O nome talk era...
Workflows com Git
Centralizado
Feature branch
Gitflow
Fork
Centralizado
Mais simples
Melhor adaptação
para quem veio
de um Sistema de
Controle Centralizado
FeatureA
BugfixB
Master
FeatureA
BugfixB
Master
Rebase
Vantagens
Comparado com SVN
Cada pessoa tem uma
cópia do repositório
Suporte robusto a
branchs e merges
Desvantagens
Tudo no mesmo tronco
Grande chance
de ter conflitos
Feature branch
Master
Ana
Bia
FeatureA
Bugfix B
Vantagens
Trabalho em paralelo
Features e branchs
são independentes
Várias branchs
para cada feature
Merges mais simples
Menor chance
de ter conflitos
Uso de Pull request
E code review
Desvantagem
Maior complexidade
Gitflow
Feat A
v0.3
Bug Z
Master
v0.1
Desenv
v0.2 v0.3
Desvantagem
Alta complexidade
Nossa versão
Bira e Andréa
Feat A
v0.3
Bug Z
Master
v0.1 v0.2 v0.3
Desenv
Master
v0.1
Bug Z
v0.2
v0.3
v0.3
Feat A
Fork
Garfo, literalmente
Utilizado por
projetos open-source
Várias cópias do
repositório oficial
Cada cópia
é independente
Próprio fluxo e branchs
Mudanças enviadas
via Pull request
Podem ser aceitas ou não
Dúvidas?
Vlw!!!
@akfzambranaVia Varejo 2017

Mais conteúdo relacionado

Semelhante a Version all the things [Workflows com Git]

Processo de desenvolvimento na samba
Processo de desenvolvimento na sambaProcesso de desenvolvimento na samba
Processo de desenvolvimento na samba
joaogmaciel
 
Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
Raphael Cruzeiro
 

Semelhante a Version all the things [Workflows com Git] (20)

Git
GitGit
Git
 
Git - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoGit - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotado
 
Git para não manjadores
Git para não manjadoresGit para não manjadores
Git para não manjadores
 
GIT: O Commit, o Fluxo e a Tag
GIT: O Commit, o Fluxo e a TagGIT: O Commit, o Fluxo e a Tag
GIT: O Commit, o Fluxo e a Tag
 
Git 101
Git 101Git 101
Git 101
 
Processo de desenvolvimento na samba
Processo de desenvolvimento na sambaProcesso de desenvolvimento na samba
Processo de desenvolvimento na samba
 
Controle de versão e colaboração com Git
Controle de versão e colaboração com GitControle de versão e colaboração com Git
Controle de versão e colaboração com Git
 
Controle de versão com Git
Controle de versão com GitControle de versão com Git
Controle de versão com Git
 
Git do Zero - Campus Party #12
Git do Zero - Campus Party #12Git do Zero - Campus Party #12
Git do Zero - Campus Party #12
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySP
 
Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
 
Git workshop
Git workshopGit workshop
Git workshop
 
Git - Não perca o que estava funcionando!
Git - Não perca o que estava funcionando!Git - Não perca o que estava funcionando!
Git - Não perca o que estava funcionando!
 
Aprendendo Git
Aprendendo GitAprendendo Git
Aprendendo Git
 
Git Básico
Git BásicoGit Básico
Git Básico
 
[4Soft] Git para iniciantes
[4Soft] Git para iniciantes[4Soft] Git para iniciantes
[4Soft] Git para iniciantes
 
Git e Github
Git e GithubGit e Github
Git e Github
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com Git
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENAC
 
Git v2
Git v2Git v2
Git v2
 

Mais de Andréa Zambrana

Mais de Andréa Zambrana (12)

Caipirinha CSS
Caipirinha CSSCaipirinha CSS
Caipirinha CSS
 
Caipirinha CSS
Caipirinha CSSCaipirinha CSS
Caipirinha CSS
 
Viajando no front
Viajando no frontViajando no front
Viajando no front
 
Sass maps, my precious! 2.0
Sass maps, my precious! 2.0Sass maps, my precious! 2.0
Sass maps, my precious! 2.0
 
Curso front-end - Aula 004 - Comandos git (cont.)
Curso front-end - Aula 004 - Comandos git (cont.)Curso front-end - Aula 004 - Comandos git (cont.)
Curso front-end - Aula 004 - Comandos git (cont.)
 
Curso front-end - Aula 003 - Comandos git
Curso front-end - Aula 003 - Comandos git Curso front-end - Aula 003 - Comandos git
Curso front-end - Aula 003 - Comandos git
 
Curso front-end - Aula 002 - Git
Curso front-end - Aula 002 - GitCurso front-end - Aula 002 - Git
Curso front-end - Aula 002 - Git
 
Curso front-end - Aula 001
Curso front-end - Aula 001Curso front-end - Aula 001
Curso front-end - Aula 001
 
Sass maps, my precious!
Sass maps, my precious!Sass maps, my precious!
Sass maps, my precious!
 
Sass - css bomba[do]
Sass - css bomba[do]Sass - css bomba[do]
Sass - css bomba[do]
 
b ou strong eis a questão! HTML semântico, o santo graal do front-end =]
 b ou strong eis a questão! HTML semântico, o santo graal do front-end =] b ou strong eis a questão! HTML semântico, o santo graal do front-end =]
b ou strong eis a questão! HTML semântico, o santo graal do front-end =]
 
Acessibilidade web, perda de tempo?
Acessibilidade web, perda de tempo?Acessibilidade web, perda de tempo?
Acessibilidade web, perda de tempo?
 

Último

Último (8)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Version all the things [Workflows com Git]