SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
Git para quem gosta de git
ou não
Eduardo Bohrer
http://about.me/nbluis
História
Kernel em números
9 repositórios
oficiais com
suporte ativo
Kernel em números
★ 17+ milhões de linhas de código
★ 9700+ desenvolvedores (desde o inicio do
git)
★ 200+ empresas envolvidas atualmente
★ Média de 9 commits por hora
http://www.cnet.com/news/linux-development-by-the-numbers-big-and-getting-bigger/
http://royal.pingdom.com/2012/04/16/linux-kernel-development-numbers/
Eu prefiro um tallball
SVN Slogan = CSV Done Right
Um dia de fúria de Linux Torvalds
There is no way to do cvs right. (Linus
Torvalds)
Trabalho remoto, independente,
offline
SSL
Rápido
Compressão
Histórico local
Branchs locais
Tags locais
Working tree local
Commits locais
Github
Chega de mimimi
Um commit no GIT
Pasta raiz
Sub-pasta
Arquivo no raiz
Arquivo na sub-pasta
Um commit no GIT
git commit
Um commit no GIT
commit: c1
---------------------
parent: null
tree: Pasta raiz
author: Bohrer
tree: Pasta Raiz
-----------------------------
tree: Sub-pasta
blob: Arquivo no Raiz
blob: Arquivo no Raiz
tree: bcdblob: Arquivo na sub-pasta
tree: Sub-pasta
-------------------------------------
blob: Arquivo na sub-pasta
Outro commit
Mudei um arquivo
git commit
Outro commit
commit: c2
---------------------
parent: c1
tree: Pasta raiz
author: Bohrer
tree: Pasta Raiz
-----------------------------
tree: Sub-pasta
blob: Arquivo no Raiz
blob: Arquivo no Raiz
commit: c1
---------------------
parent: null
tree: Pasta raiz
author: Bohrer
tree: Pasta Raiz
-----------------------------
tree: Sub-pasta
blob: Arquivo no Raiz
blob: Arquivo no Raiz
tree: bcdblob: Arquivo na sub-pasta
tree: Sub-pasta
-------------------------------------
blob: Arquivo na sub-pasta
Working tree
c1master* c2 c3 c4 c5
Forks e Branches
master* c2 c3 c4 c5
work c2 c3 c4 c5
b2 c4 c5
c1
Uma linda e maravilhosa arvore!
Mas o SVN também faz
Esqueça o que aprendeu sobre VCS
Branchs são legais
Merges também (as vezes)
Fork e branch
git branch work
git checkout work
Fork e Branch
master c1
work*
c2
Fork e Branch
master c2
work* c3 c4
c1
Merge
Estrategias de merge
● Fast forward
● Recursive
● Octopus
● Outros (mais complexos)
Merge
git checkout master
git merge work
Fast forward
master* c2
work c3 c4
c1
Não há nada a
resolver! :)
Fast forward
c2
master*
work
c3 c4
c1
Não há nada a
resolver! :)
Recursive merge
master c2 c3
work c3 c4
c1 c4 Commit nas
duas. :(
Recursive merge
master* c2 c3
work c3 c4
c1 c4 c5
Octopus merge
master* c2
c5
work c2 c3
b2 c4
c1
Octopus merge
master* c2
c5
work c2 c3
b2 c4
c1 c5
Mas o SVN também faz
Podando a árvore
git rebase
Git rebase
master c2
work* c3 c4
c1
Git rebase
master
c2
work*
c3 c4c1
Mais ferramentas
Muito mais
Git remote
git remote
Só mais um ramo
Git remote
origin/
master
c2
master* c3 c4
c1
Git pull
git pull
(git fetch + git merge)
Git push
git push origin master
Git log
git log
Git stash
git stash
git stash apply
Git patch + apply
git format-patch
git apply
Git bisect
git bisect start
git bisect end
git bisect run
Git bisect
c2 c3 c4 c5c1 c5
GOOD BAD
Git bisect
c2 c3 c4 c5c1 c5
GOOD BADBAD
Git bisect
c2 c3 c4 c5c1 c5
GOOD BAD
Git bisect
c2 c3 c4 c5c1 c5
BADGOODGOOD
Git bisect
c2 c3 c4 c5c1 c5
BADGOOD
Git bisect
c2 c3 c4 c5c1 c5
Primeira versão
com problema
Git diff
git diff
git diff origin master
dif diff a --not b
Git reset
git reset
git reset --hard
Git tag
Tagging done right!
Aprendendo mais
http://pcottle.github.io/learnGitBranching
Ferramentas gráficas
Eu prefiro SVN
Me dê APENAS 1 motivo
Git para quem gosta de git
ou não
Eduardo Bohrer
http://about.me/nbluis

Mais conteúdo relacionado

Semelhante a Git para quem gosta de git

Controlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitControlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitC. Augusto Proiete
 
Controlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteControlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteComunidade NetPonto
 
Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - gitThiago Filadelfo
 
git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)Carlos Duarte do Nascimento
 
Git e Gitlab para Iniciantes
Git e Gitlab para IniciantesGit e Gitlab para Iniciantes
Git e Gitlab para IniciantesIgorDiniz22
 
Fluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitFluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitBruno Ricardo Siqueira
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com GitVagner Santana
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET ComputaçãoBruno Orlandi
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao gitDiogo Gomes
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Tchelinux
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containerstdc-globalcode
 

Semelhante a Git para quem gosta de git (20)

Controlo de Versões Distribuído com Git
Controlo de Versões Distribuído com GitControlo de Versões Distribuído com Git
Controlo de Versões Distribuído com Git
 
Controlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto ProieteControlo de Versões Distribuído com Git - C. Augusto Proiete
Controlo de Versões Distribuído com Git - C. Augusto Proiete
 
Workshop sistema de versionamento de código - git
Workshop  sistema de versionamento de código - gitWorkshop  sistema de versionamento de código - git
Workshop sistema de versionamento de código - git
 
git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)git fail --force (faça as pazes com seus pull requests)
git fail --force (faça as pazes com seus pull requests)
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
Git e Gitlab para Iniciantes
Git e Gitlab para IniciantesGit e Gitlab para Iniciantes
Git e Gitlab para Iniciantes
 
Fluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitFluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando Git
 
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos BásicosGit e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
 
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 PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET Computação
 
Git 101
Git 101Git 101
Git 101
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
Controle de versão com Git
Controle de versão com GitControle de versão com Git
Controle de versão com Git
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao git
 
Git e github
Git e githubGit e github
Git e github
 
Git
GitGit
Git
 
Git ao GitHub
Git ao GitHubGit ao GitHub
Git ao GitHub
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
 
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containersTDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
TDC2018SP | Trilha Containers - CRI-O: Nem so de Docker vivem os containers
 
Git
GitGit
Git
 

Mais de Eduardo Bohrer

Monitorando sistemas distribuidos
Monitorando sistemas distribuidosMonitorando sistemas distribuidos
Monitorando sistemas distribuidosEduardo Bohrer
 
Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18Eduardo Bohrer
 
Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015 Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015 Eduardo Bohrer
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoEduardo Bohrer
 
Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!Eduardo Bohrer
 
NoSQL and AWS Dynamodb
NoSQL and AWS DynamodbNoSQL and AWS Dynamodb
NoSQL and AWS DynamodbEduardo Bohrer
 
uMov.me API - Do básico ao avançado
uMov.me API - Do básico ao avançadouMov.me API - Do básico ao avançado
uMov.me API - Do básico ao avançadoEduardo Bohrer
 
XSS (Cross site scripting)
XSS (Cross site scripting)XSS (Cross site scripting)
XSS (Cross site scripting)Eduardo Bohrer
 
Memória e Garbage Collection na JVM
Memória e Garbage Collection na JVMMemória e Garbage Collection na JVM
Memória e Garbage Collection na JVMEduardo Bohrer
 
Chaos Report - Web Security Version
Chaos Report - Web Security VersionChaos Report - Web Security Version
Chaos Report - Web Security VersionEduardo Bohrer
 

Mais de Eduardo Bohrer (10)

Monitorando sistemas distribuidos
Monitorando sistemas distribuidosMonitorando sistemas distribuidos
Monitorando sistemas distribuidos
 
Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18Kubernetes - ThoughtWorks Tech Radar 18
Kubernetes - ThoughtWorks Tech Radar 18
 
Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015 Refatoração - XPConfBR 2015
Refatoração - XPConfBR 2015
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!Builds e Pipelines - A arte de automatizar a entrega de software!
Builds e Pipelines - A arte de automatizar a entrega de software!
 
NoSQL and AWS Dynamodb
NoSQL and AWS DynamodbNoSQL and AWS Dynamodb
NoSQL and AWS Dynamodb
 
uMov.me API - Do básico ao avançado
uMov.me API - Do básico ao avançadouMov.me API - Do básico ao avançado
uMov.me API - Do básico ao avançado
 
XSS (Cross site scripting)
XSS (Cross site scripting)XSS (Cross site scripting)
XSS (Cross site scripting)
 
Memória e Garbage Collection na JVM
Memória e Garbage Collection na JVMMemória e Garbage Collection na JVM
Memória e Garbage Collection na JVM
 
Chaos Report - Web Security Version
Chaos Report - Web Security VersionChaos Report - Web Security Version
Chaos Report - Web Security Version
 

Git para quem gosta de git