git - controle de versões do jeito certo

Post on 03-Jul-2015

11.734 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

Git: Controle de versões do jeito certo

Arthur Zapparoli@arthurgeek

Arthur?

Arthur?

• ArthurGeek

Arthur?

• ArthurGeek

• http://arthurgeek.net

Arthur?

• ArthurGeek

• http://arthurgeek.net

• @arthurgeek

Agenda

Agenda

• VCS

• O que é?

• Vantagens

• Como funciona?

• Centralizado x Distribuído

Agenda

Agenda

• Git

• O que é?

• Características básicas

• Particularidades

• Instalando

Agenda

Agenda

• Git

• Configurando

• Iniciando um repositório

• Workflow básico

• Workflow remoto

Pesquisa

Pesquisa

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

Pesquisa

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

• CVS?

Pesquisa

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

• CVS?

• Subversion?

Pesquisa

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

• CVS?

• Subversion?

• Algum outro?

VCS: O que é?

VCS: O que é?

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

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.

VCS: Vantagens

• Backup automático de todos arquivos

VCS: Vantagens

• Backup automático de todos arquivos

• Controle do histórico

VCS: Vantagens

• Backup automático de todos arquivos

• Controle do histórico

• Trabalho em equipe

VCS: Vantagens

• Backup automático de todos arquivos

• Controle do histórico

• Trabalho em equipe

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

VCS: Vantagens

• 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

VCS: Como funciona?

VCS: Como funciona?

Repositório

VCS: Como funciona?

Pedro

Repositório

VCS: Como funciona?

Pedro

Repositório

Checkout

VCS: Como funciona?

Pedro

Repositório

Modifica

Checkout

VCS: Como funciona?

Pedro

Repositório

Modifica

Repositório

CommitC

heckout

Lorem

Ipsum

VCS: Centralizado x Distribuído

VCS: Modelo Centralizado

VCS: Modelo Centralizado

• Repositório fica armazanedo em um servidor central

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

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

VCS: Modelo Centralizado

Repositório

Checkout

Commit

Checkout C

ommit

Checkout

Comm

it

Checkout

Commit

Checkout

Commit

Pedro Sílvia

Ana Carlos

Guilherme

VCS: Modelo Distribuído

VCS: Modelo Distribuído

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

VCS: Modelo Distribuído

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

• Independe de acesso à rede ou um servidor central

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

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

VCS: Modelo Distribuído

Pull

Push

Pull

Push

Push

Push

Push

Pull

Pedro

Ana

Carlos

Sílvia

Guilherme

Git: O que é?

Git: O que é?

• Um projeto Open Source (GPL v2)

Git: O que é?

• Um projeto Open Source (GPL v2)

• Originalmente escrito por Linus Torvalds em 2005

Git: O que é?

• Um projeto Open Source (GPL v2)

• Originalmente escrito por Linus Torvalds em 2005

• Atualmente é mantido por Junio Hamano

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

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

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

Git: Características Básicas

Git: Características Básicas

• Suporte para desenvolvimento não-linear

Git: Características Básicas

• Suporte para desenvolvimento não-linear

• Desenvolvimento distribuído

Git: Características Básicas

• Suporte para desenvolvimento não-linear

• Desenvolvimento distribuído

• Compatibilidade com sistemas/protocolos existentes

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

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

• Staging Index

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

Git: Características Básicas

• Staging Index

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

• SHA1s ao invés de revision numbers

• f5f75c652b9c2347522159a87297820103e593e4

• f5f75c

Git: Características Básicas

Git: Instalando

Git: Instalando

• Windows

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

Git: Instalando

• Windows

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

• Mac OS X

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

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

Git: Configurando

Git: Configurando

Git: Configurando

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

Git: Iniciando um repositório

Git: Iniciando um repositório

Git: Iniciando um repositório

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

Git: Workflow básico

Git: Workflow básico

Git: Workflow básico

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

Git: Workflow básico

Git: Workflow básico

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

Git: Branching

Git: Branching

Git: Branching

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

Git: Branching

Git: Branching

git merge com modificações no mesmo arquivo

Git: Branching

Git: Branching

git rebase, merge conflicts, git rebase --continue

Git: Remote Workflow

Git: Remote Workflow

Git: Remote Workflow

git clone, git push, git pull, git fetch

Git: Tópicos Avançados

• git commit --interactive

• git rebase --interactive

• bisect

• cherry-pick

• git commit --ammend

• reflog

Perguntas?

Obrigado!@arthurgeek

http://busk.comEstamos contratando! ;)

top related