SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
git
Como eu parei de me preocupar e comecei
a gostar de controlar meu código.
Who’s speaking?
Por que você deve se
preocupar?
Sistemas tradicionais de controle
de versão tem deficiências.
SVN, CVS, TFS, Mercurial ...
Lentos
Conflitos estruturais
Merging é sempre um desafio
Branchs são apenas cópias
usando svn
usando git
Not saying it’ s awesome
But git it’ s awesome
É distribuído!
Distributed Version Control System
Todos os repositórios são iguais
Você pode trabalhar offline
Fast as a lightning
Muito eficiente
git clone https://github.com/rails/rails.git
52.469 commits - 2.968 arquivos - 171,4 mb
~70 segundos
Excelente sistema de branching
e merging
Qualquer workflow que você queira
implementar, você consegue...
Workflow kernel linux
Todo mundo usa git
android automapper backbone
bootstrap cassandra coffeescript
couchdb cucumber fluent-nhibernate
git jekyll less linux modernizr
mongodb mono nancy ninject node
nservicebus postgres rails ravendb
reddit trac wikipedia
Como instalar?
Linux:
apt-get install git-core (debian)
yast install git (SuSE)
yum install git-core (Red Hat)
Mac OSX:
sudo brew install git
sudo port install git-core
Windows:
http://msysgit.github.com
https://windows.github.com
git config --global user.name “André Magalhães”
git config --globla user.mail alcmagalhaes@gmail.com
git init
O branch master não tem nenhum
significado especial.
git add --all
git commit
O “nome” do commit é um hash SHA de
40 dígitos.
8adf25a6323ad20302d7009d482ec01491ec92eb
Existem quatro tipos de objetos
no git: blob, commit, tag e tree.
git remote add origin https://github.com/….
git push origin master
HEAD é uma referência para o
último commit realizado no
branch atual.
git pull origin master
Treinamento básico concluído.
Branching
e History
git branch nome
Branch é uma referência para
um ponteiro HEAD de uma
linha de trabalho.
git checkout nome
git merge nome
git reset --hard commit
git rebase nome
Merge é bom, mas em muitos
casos, rebase é melhor.
git commit --amend
git rebase --interactive
rebase --interactive
Permite: reescrever, editar,
corrigir, remover, reordenar...
Reescrever o histórico é legal e útil.
Você pode mudar o histórico de um repositório
remoto com o comando git push --force
Treinamento intermediário concluído.
Closing
thoughts
blame bisect cherry-pick clean
cvs-import describe diff fetch
filter-branch grep request-pull
revert svnimport stash
submodule tag
e muito mais...
Ficou interessado?
https://git-scm.com/doc
https://progit.org
http://gitready.com
http://gitimmersion.com
twitter.com/alcmagalhaes
github.com/alcmagalhaes
https://try.github.io/levels/1/challenges/1

Weitere ähnliche Inhalte

Was ist angesagt?

Arquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscArquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscBruno Dias
 
ESTUDO DE PERFORMANCE DAS ARQUITETURAS RISC E CISC. UM BREVE HISTÓRICO DA EVO...
ESTUDO DE PERFORMANCE DAS ARQUITETURAS RISC E CISC. UM BREVE HISTÓRICO DA EVO...ESTUDO DE PERFORMANCE DAS ARQUITETURAS RISC E CISC. UM BREVE HISTÓRICO DA EVO...
ESTUDO DE PERFORMANCE DAS ARQUITETURAS RISC E CISC. UM BREVE HISTÓRICO DA EVO...Daniel Caixeta
 
Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018
Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018
Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018Tchelinux
 
Introdução risc x cisc
Introdução risc x ciscIntrodução risc x cisc
Introdução risc x ciscuembley
 
10 motivos que indicam que tu não vivencias DevOps
10 motivos que indicam que tu não vivencias DevOps 10 motivos que indicam que tu não vivencias DevOps
10 motivos que indicam que tu não vivencias DevOps Umbler
 

Was ist angesagt? (9)

Cisc, risc e pipeline
Cisc, risc e pipelineCisc, risc e pipeline
Cisc, risc e pipeline
 
Arquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscArquiteturas_risc_e_cisc
Arquiteturas_risc_e_cisc
 
ESTUDO DE PERFORMANCE DAS ARQUITETURAS RISC E CISC. UM BREVE HISTÓRICO DA EVO...
ESTUDO DE PERFORMANCE DAS ARQUITETURAS RISC E CISC. UM BREVE HISTÓRICO DA EVO...ESTUDO DE PERFORMANCE DAS ARQUITETURAS RISC E CISC. UM BREVE HISTÓRICO DA EVO...
ESTUDO DE PERFORMANCE DAS ARQUITETURAS RISC E CISC. UM BREVE HISTÓRICO DA EVO...
 
Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018
Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018
Automatizando suas tarefas com Ansible - Daniel Lara - Tchelinux Caxias 2018
 
Roteiro vsftpd
Roteiro vsftpdRoteiro vsftpd
Roteiro vsftpd
 
CISC e RISC
CISC e RISCCISC e RISC
CISC e RISC
 
Introdução risc x cisc
Introdução risc x ciscIntrodução risc x cisc
Introdução risc x cisc
 
10 motivos que indicam que tu não vivencias DevOps
10 motivos que indicam que tu não vivencias DevOps 10 motivos que indicam que tu não vivencias DevOps
10 motivos que indicam que tu não vivencias DevOps
 
Mmm aula 05
Mmm   aula 05Mmm   aula 05
Mmm aula 05
 

Ähnlich wie Como o Git me ajudou a controlar meu código

Desenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações WebDesenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações WebNando Sousa
 
Seja burro e preguiçoso. A criação do synccode
Seja burro e preguiçoso. A criação do synccodeSeja burro e preguiçoso. A criação do synccode
Seja burro e preguiçoso. A criação do synccodes4nx
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPSamuel Sampaio
 
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteTchelinux
 
Curso front-end - Aula 002 - Git
Curso front-end - Aula 002 - GitCurso front-end - Aula 002 - Git
Curso front-end - Aula 002 - GitAndréa Zambrana
 
Palestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-V
Palestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-VPalestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-V
Palestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-VGBanin
 
git: o primeiro passo do seu projeto de código aberto
git: o primeiro passo do seu projeto de código abertogit: o primeiro passo do seu projeto de código aberto
git: o primeiro passo do seu projeto de código abertoAdriano Melo
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoocfelipe
 
GIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoGIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoDjanilson Alves
 
Porque usar um sistema de controle de versão distribuído como GIT?
Porque usar um sistema de controle de versão distribuído como GIT?Porque usar um sistema de controle de versão distribuído como GIT?
Porque usar um sistema de controle de versão distribuído como GIT?William Seiti Mizuta
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao gitDiogo Gomes
 
Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Globalcode
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVNLuciano Lima
 
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
 

Ähnlich wie Como o Git me ajudou a controlar meu código (20)

Git
GitGit
Git
 
Desenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações WebDesenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações Web
 
Go git - Presentation @Navita
Go git - Presentation @NavitaGo git - Presentation @Navita
Go git - Presentation @Navita
 
Seja burro e preguiçoso. A criação do synccode
Seja burro e preguiçoso. A criação do synccodeSeja burro e preguiçoso. A criação do synccode
Seja burro e preguiçoso. A criação do synccode
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySP
 
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé LeiteComo ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
Como ajudar no desenvolvimento do kernel Linux? - Fábio Olivé Leite
 
Curso front-end - Aula 002 - Git
Curso front-end - Aula 002 - GitCurso front-end - Aula 002 - Git
Curso front-end - Aula 002 - Git
 
Palestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-V
Palestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-VPalestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-V
Palestra Teched Brasil 2010 - Sessão INT301 - Linux no Hyper-V
 
Git v2
Git v2Git v2
Git v2
 
Começando com GIT
Começando com GITComeçando com GIT
Começando com GIT
 
git: o primeiro passo do seu projeto de código aberto
git: o primeiro passo do seu projeto de código abertogit: o primeiro passo do seu projeto de código aberto
git: o primeiro passo do seu projeto de código aberto
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
GIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento SemânticoGIT - Gerenciamento de Projeto e Versionamento Semântico
GIT - Gerenciamento de Projeto e Versionamento Semântico
 
Porque usar um sistema de controle de versão distribuído como GIT?
Porque usar um sistema de controle de versão distribuído como GIT?Porque usar um sistema de controle de versão distribuído como GIT?
Porque usar um sistema de controle de versão distribuído como GIT?
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao git
 
Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!Academia do Arquiteto - Implantando A.L.M. em uma semana!
Academia do Arquiteto - Implantando A.L.M. em uma semana!
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVN
 
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
 
Git e Github
Git e GithubGit e Github
Git e Github
 

Como o Git me ajudou a controlar meu código