Mergulhando de cabeça no git

 

Entendendo um pouquito melhor

@bearded_nerd

caesar.ralf@gmail.com

MUCH GIT

SUCH COMMANDS

WOW

Sobre mim

  • Caesar Ralf Franz Hoppen
  • Gaúcho
  • ~8 anos desenvoldedor
  • Time de Busca Elo7
  • Professor Caelum
  • Quase uma pessoa normal

Sobre a palestra

"Avançada"

Assume conhecimento básico de git

Entender um pouquito mais do Git

E assim salvar sua pele

Objetivo:

Estruturas do Git

Blob

doc

Tree

Blob

Blob

commit

1496fa3

a4b627e

e05add4

e019271

c57ec75

SHA-1

Um commit é uma foto!

  • Hash da Tree
  • Commiter
  • Comentário

mínimo

  • Hash do commit pai

Guarda Infos do Instante!

Mas entre os commits? Como eles se organizam?

 Grafo Direto Acíclico

eles apontam tudo pra mesma direção sem gerar ciclos

git tree

Qual Importância de saber isso?

Rebase
e
Merge

...mas vamos focar só no rebase, ok?

Rebase Padrão

Relembrando

$ git checkout master
$ git log --oneline
48f1836 Cria pizza
24b85a2 Cria massa e testes
c460145 Cria a pizzaria
$ git checkout faz-molho
$ git log --oneline
a58ebc7 Faz o alho, a cebola e os testes
8b7b9a3 Faz molho
1c2a4f2 Faz teste
c460145 Cria a pizzaria

branch faz-molho

branch master

Mais antigo

Mais novo

$ git checkout faz-molho
$ git checkout rebase master
$ git log --oneline
48f1836 Cria pizza
24b85a2 Cria massa e testes
c460145 Cria a pizzaria
$ git log --oneline
a58ebc7 Faz o alho, a cebola e os testes
8b7b9a3 Faz molho
1c2a4f2 Faz teste
c460145 Cria a pizzaria

COMMIT EM COMUM

branch faz-molho

branch master

$ git checkout faz-molho
$ git checkout rebase master
$ git log --oneline
48f1836 Cria pizza
24b85a2 Cria massa e testes
c460145 Cria a pizzaria
$ git log --oneline
48f1836 Cria pizza
24b85a2 Cria massa e testes
c460145 Cria a pizzaria

branch faz-molho

branch master

Faz o alho, a cebola e os testes
Faz molho
Faz teste

DEIXA COM MESMO HEAD

$ git checkout faz-molho
$ git checkout rebase master
$ git log --oneline
48f1836 Cria pizza
24b85a2 Cria massa e testes
c460145 Cria a pizzaria
$ git log --oneline
3283159 Faz teste
48f1836 Cria pizza
24b85a2 Cria massa e testes
c460145 Cria a pizzaria

branch faz-molho

branch master

Faz o alho, a cebola e os testes
Faz molho

REAPLICA OS COMMITS UM POR UM!

*

1c2a4f2 Faz teste

$ git checkout faz-molho
$ git checkout rebase master
$ git log --oneline
48f1836 Cria pizza
24b85a2 Cria massa e testes
c460145 Cria a pizzaria
$ git log --oneline
5277ec8 Faz o alho, a cebola e os testes
17851ee Faz molho
3283159 Faz teste
48f1836 Cria pizza
24b85a2 Cria massa e testes
c460145 Cria a pizzaria

branch faz-molho

branch master

*

*

*

REBASE
É MUITO
AFUDÊ!

MAS É TOTALMENTE DESTRUTIVO!

Ele reescreve sua árvore de commits!

use somente em branchs não compartilhados!

É UM VIAJANTE DO TEMPO!

Outros uso do rebase...

Rebase Interativo!

botando um pouco da mão na massa

rebase -i commithash~

Seus usos...

  • Renomear commits
  • Deletar commits
  • Separar commits
  • Juntar commits
  • Mudar Ordem dos Commits

Muito bacana

mas ainda muito destrutivo! Usem somente em branches locais!

Referências

  • http://git-scm.com/book
  • http://gitready.com/
  • http://gitimmersion.com/
  • http://github.com/
  • http://gitreal2.codeschool.com/

Elo7 está contratando!

jobs@elo7.com

OBRIGADO!

@bearded_nerd

caesar.ralf@gmail.com

link palestra: http://bit.ly/1oiUUJ5

Blog da Elo7: http://craftedbits.elo7.com.br/

Mergulhando de cabeça no git: uma visão aprofundada e hands on

By Caesar Ralf Franz Hoppen

Mergulhando de cabeça no git: uma visão aprofundada e hands on

  • 1,469