git - controle de versões do jeito certo

86
Git: Controle de versões do jeito certo Arthur Zapparoli @arthurgeek

Upload: arthur-zapparoli

Post on 03-Jul-2015

11.734 views

Category:

Technology


0 download

DESCRIPTION

Palestra de Introdução ao Git que apresentei no Rails Summit 09. Infelizmente, sem os screencasts no final, os slides não fazem muito sentido.

TRANSCRIPT

Page 1: Git - Controle de Versões do Jeito Certo

Git: Controle de versões do jeito certo

Arthur Zapparoli@arthurgeek

Page 2: Git - Controle de Versões do Jeito Certo

Arthur?

Page 3: Git - Controle de Versões do Jeito Certo

Arthur?

• ArthurGeek

Page 4: Git - Controle de Versões do Jeito Certo

Arthur?

• ArthurGeek

• http://arthurgeek.net

Page 5: Git - Controle de Versões do Jeito Certo

Arthur?

• ArthurGeek

• http://arthurgeek.net

• @arthurgeek

Page 6: Git - Controle de Versões do Jeito Certo

Agenda

Page 7: Git - Controle de Versões do Jeito Certo

Agenda

• VCS

• O que é?

• Vantagens

• Como funciona?

• Centralizado x Distribuído

Page 8: Git - Controle de Versões do Jeito Certo

Agenda

Page 9: Git - Controle de Versões do Jeito Certo

Agenda

• Git

• O que é?

• Características básicas

• Particularidades

• Instalando

Page 10: Git - Controle de Versões do Jeito Certo

Agenda

Page 11: Git - Controle de Versões do Jeito Certo

Agenda

• Git

• Configurando

• Iniciando um repositório

• Workflow básico

• Workflow remoto

Page 12: Git - Controle de Versões do Jeito Certo

Pesquisa

Page 13: Git - Controle de Versões do Jeito Certo

Pesquisa

• Quem não usa NENHUM controle de versões?

Page 14: Git - Controle de Versões do Jeito Certo

Pesquisa

• Quem não usa NENHUM controle de versões?

• CVS?

Page 15: Git - Controle de Versões do Jeito Certo

Pesquisa

• Quem não usa NENHUM controle de versões?

• CVS?

• Subversion?

Page 16: Git - Controle de Versões do Jeito Certo

Pesquisa

• Quem não usa NENHUM controle de versões?

• CVS?

• Subversion?

• Algum outro?

Page 17: Git - Controle de Versões do Jeito Certo

VCS: O que é?

Page 18: Git - Controle de Versões do Jeito Certo

VCS: O que é?

• um software para gerenciar diferentes versões de um documento qualquer

Page 19: Git - Controle de Versões do Jeito Certo

VCS: O que é?

• um software para gerenciar diferentes versões de um documento qualquer

• o processo de guardar o histórico de alterações de diferentes arquivos.

Page 20: Git - Controle de Versões do Jeito Certo

VCS: Vantagens

Page 21: Git - Controle de Versões do Jeito Certo

• Backup automático de todos arquivos

VCS: Vantagens

Page 22: Git - Controle de Versões do Jeito Certo

• Backup automático de todos arquivos

• Controle do histórico

VCS: Vantagens

Page 23: Git - Controle de Versões do Jeito Certo

• Backup automático de todos arquivos

• Controle do histórico

• Trabalho em equipe

VCS: Vantagens

Page 24: Git - Controle de Versões do Jeito Certo

• Backup automático de todos arquivos

• Controle do histórico

• Trabalho em equipe

• Marcação e resgate de versões estáveis

VCS: Vantagens

Page 25: Git - Controle de Versões do Jeito Certo

• Backup automático de todos arquivos

• Controle do histórico

• Trabalho em equipe

• Marcação e resgate de versões estáveis

• Ramificação do projeto

VCS: Vantagens

Page 26: Git - Controle de Versões do Jeito Certo

VCS: Como funciona?

Page 27: Git - Controle de Versões do Jeito Certo

VCS: Como funciona?

Repositório

Page 28: Git - Controle de Versões do Jeito Certo

VCS: Como funciona?

Pedro

Repositório

Page 29: Git - Controle de Versões do Jeito Certo

VCS: Como funciona?

Pedro

Repositório

Checkout

Page 30: Git - Controle de Versões do Jeito Certo

VCS: Como funciona?

Pedro

Repositório

Modifica

Checkout

Page 31: Git - Controle de Versões do Jeito Certo

VCS: Como funciona?

Pedro

Repositório

Modifica

Repositório

CommitC

heckout

Lorem

Ipsum

Page 32: Git - Controle de Versões do Jeito Certo

VCS: Centralizado x Distribuído

Page 33: Git - Controle de Versões do Jeito Certo

VCS: Modelo Centralizado

Page 34: Git - Controle de Versões do Jeito Certo

VCS: Modelo Centralizado

• Repositório fica armazanedo em um servidor central

Page 35: Git - Controle de Versões do Jeito Certo

VCS: Modelo Centralizado

• Repositório fica armazanedo em um servidor central

• Os desenvolvedores ao fazerem um checkout, obtêm uma cópia da última revisão do repositório

Page 36: Git - Controle de Versões do Jeito Certo

VCS: Modelo Centralizado

• Repositório fica armazanedo em um servidor central

• Os desenvolvedores ao fazerem um checkout, obtêm uma cópia da última revisão do repositório

• Somente usuários autorizados podem fazer commits

Page 37: Git - Controle de Versões do Jeito Certo

VCS: Modelo Centralizado

Repositório

Checkout

Commit

Checkout C

ommit

Checkout

Comm

it

Checkout

Commit

Checkout

Commit

Pedro Sílvia

Ana Carlos

Guilherme

Page 38: Git - Controle de Versões do Jeito Certo

VCS: Modelo Distribuído

Page 39: Git - Controle de Versões do Jeito Certo

VCS: Modelo Distribuído

• Cada projeto é um repositório completo, com histórico total

Page 40: Git - Controle de Versões do Jeito Certo

VCS: Modelo Distribuído

• Cada projeto é um repositório completo, com histórico total

• Independe de acesso à rede ou um servidor central

Page 41: Git - Controle de Versões do Jeito Certo

VCS: Modelo Distribuído

• Cada projeto é um repositório completo, com histórico total

• Independe de acesso à rede ou um servidor central

• Commits podem ser feitos offline

Page 42: Git - Controle de Versões do Jeito Certo

VCS: Modelo Distribuído

• Cada projeto é um repositório completo, com histórico total

• Independe de acesso à rede ou um servidor central

• Commits podem ser feitos offline

• Commits podem ser transferidos de um repositório para outro facilmente

Page 43: Git - Controle de Versões do Jeito Certo

VCS: Modelo Distribuído

Pull

Push

Pull

Push

Push

Push

Push

Pull

Pedro

Ana

Carlos

Sílvia

Guilherme

Page 44: Git - Controle de Versões do Jeito Certo

Git: O que é?

Page 45: Git - Controle de Versões do Jeito Certo

Git: O que é?

• Um projeto Open Source (GPL v2)

Page 46: Git - Controle de Versões do Jeito Certo

Git: O que é?

• Um projeto Open Source (GPL v2)

• Originalmente escrito por Linus Torvalds em 2005

Page 47: Git - Controle de Versões do Jeito Certo

Git: O que é?

• Um projeto Open Source (GPL v2)

• Originalmente escrito por Linus Torvalds em 2005

• Atualmente é mantido por Junio Hamano

Page 48: Git - Controle de Versões do Jeito Certo

Git: O que é?

• Um projeto Open Source (GPL v2)

• Originalmente escrito por Linus Torvalds em 2005

• Atualmente é mantido por Junio Hamano

• Desenvolvido para manter o Kernel do Linux

Page 49: Git - Controle de Versões do Jeito Certo

Git: O que é?

• Um projeto Open Source (GPL v2)

• Originalmente escrito por Linus Torvalds em 2005

• Atualmente é mantido por Junio Hamano

• Desenvolvido para manter o Kernel do Linux

• Sistema de controle de versões distribuído

Page 50: Git - Controle de Versões do Jeito Certo

Git: O que é?

• Um projeto Open Source (GPL v2)

• Originalmente escrito por Linus Torvalds em 2005

• Atualmente é mantido por Junio Hamano

• Desenvolvido para manter o Kernel do Linux

• Sistema de controle de versões distribuído

• Foco em rapidez, eficiência e uso em grandes projetos

Page 51: Git - Controle de Versões do Jeito Certo

Git: Características Básicas

Page 52: Git - Controle de Versões do Jeito Certo

Git: Características Básicas

• Suporte para desenvolvimento não-linear

Page 53: Git - Controle de Versões do Jeito Certo

Git: Características Básicas

• Suporte para desenvolvimento não-linear

• Desenvolvimento distribuído

Page 54: Git - Controle de Versões do Jeito Certo

Git: Características Básicas

• Suporte para desenvolvimento não-linear

• Desenvolvimento distribuído

• Compatibilidade com sistemas/protocolos existentes

Page 55: Git - Controle de Versões do Jeito Certo

Git: Características Básicas

• Suporte para desenvolvimento não-linear

• Desenvolvimento distribuído

• Compatibilidade com sistemas/protocolos existentes

• Manipulação eficiente de grandes projetos

Page 56: Git - Controle de Versões do Jeito Certo

Git: Características Básicas

• Suporte para desenvolvimento não-linear

• Desenvolvimento distribuído

• Compatibilidade com sistemas/protocolos existentes

• Manipulação eficiente de grandes projetos

• Limpo

Page 57: Git - Controle de Versões do Jeito Certo

• Staging Index

• HEAD, HEAD^, HEAD^^, HEAD~2

Git: Características Básicas

Page 58: Git - Controle de Versões do Jeito Certo

• Staging Index

• HEAD, HEAD^, HEAD^^, HEAD~2

• SHA1s ao invés de revision numbers

• f5f75c652b9c2347522159a87297820103e593e4

• f5f75c

Git: Características Básicas

Page 59: Git - Controle de Versões do Jeito Certo

Git: Instalando

Page 60: Git - Controle de Versões do Jeito Certo

Git: Instalando

• Windows

• http://code.google.com/p/msysgit/

Page 61: Git - Controle de Versões do Jeito Certo

Git: Instalando

• Windows

• http://code.google.com/p/msysgit/

• Mac OS X

• http://code.google.com/p/git-osx-installer

Page 62: Git - Controle de Versões do Jeito Certo

Git: Instalando

• Windows

• http://code.google.com/p/msysgit/

• Mac OS X

• http://code.google.com/p/git-osx-installer

• Linux

• De acordo com sua distro favorita ou à partir do fonte

Page 63: Git - Controle de Versões do Jeito Certo

Git: Configurando

Page 64: Git - Controle de Versões do Jeito Certo

Git: Configurando

Page 65: Git - Controle de Versões do Jeito Certo

Git: Configurando

Usar --global faz com que a mesma configuração seja usada em todos os projetos

Page 66: Git - Controle de Versões do Jeito Certo

Git: Iniciando um repositório

Page 67: Git - Controle de Versões do Jeito Certo

Git: Iniciando um repositório

Page 68: Git - Controle de Versões do Jeito Certo

Git: Iniciando um repositório

O diretório objects armazena todos os objetos do Git: commits, trees, blobs, etc.

Page 69: Git - Controle de Versões do Jeito Certo

Git: Workflow básico

Page 70: Git - Controle de Versões do Jeito Certo

Git: Workflow básico

Page 71: Git - Controle de Versões do Jeito Certo

Git: Workflow básico

git status, git add, git commit, git log, git commit -a

Page 72: Git - Controle de Versões do Jeito Certo

Git: Workflow básico

Page 73: Git - Controle de Versões do Jeito Certo

Git: Workflow básico

git diff, git blame, git reset, git commit -v, .gitignore

Page 74: Git - Controle de Versões do Jeito Certo

Git: Branching

Page 75: Git - Controle de Versões do Jeito Certo

Git: Branching

Page 76: Git - Controle de Versões do Jeito Certo

Git: Branching

git branch, git checkout, gitk, git merge, git branch -d/-D, git checkout -b

Page 77: Git - Controle de Versões do Jeito Certo

Git: Branching

Page 78: Git - Controle de Versões do Jeito Certo

Git: Branching

git merge com modificações no mesmo arquivo

Page 79: Git - Controle de Versões do Jeito Certo

Git: Branching

Page 80: Git - Controle de Versões do Jeito Certo

Git: Branching

git rebase, merge conflicts, git rebase --continue

Page 81: Git - Controle de Versões do Jeito Certo

Git: Remote Workflow

Page 82: Git - Controle de Versões do Jeito Certo

Git: Remote Workflow

Page 83: Git - Controle de Versões do Jeito Certo

Git: Remote Workflow

git clone, git push, git pull, git fetch

Page 84: Git - Controle de Versões do Jeito Certo

Git: Tópicos Avançados

• git commit --interactive

• git rebase --interactive

• bisect

• cherry-pick

• git commit --ammend

• reflog

Page 85: Git - Controle de Versões do Jeito Certo

Perguntas?

Page 86: Git - Controle de Versões do Jeito Certo

Obrigado!@arthurgeek

http://busk.comEstamos contratando! ;)