git para iniciantes v1.3.0 @ php conference brasil 2012

148
Git para iniciantes sábado, 15 de dezembro de 2012

Upload: mauro-george

Post on 19-Jan-2015

419 views

Category:

Technology


0 download

DESCRIPTION

Apresentada em 30/11/12 na PHP Conference Brasil 2012. Na palestra você verá uma introdução aos sistemas de controle de versão, passando pelos modelos centralizado e distribuído. Um pouco da história do git, a instalação e GUIs para Mac, Linux e Windows. As configurações e o fluxo básico para o dia a dia. Além de alguns comandos e dicas que ajudarão no dia a dia com o git, inclusive para quem já usa o git no seu dia a dia

TRANSCRIPT

Page 1: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Git para iniciantes

sábado, 15 de dezembro de 2012

Page 2: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Git para iniciantes1.3.0

sábado, 15 de dezembro de 2012

Page 3: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Mauro... quem?

sábado, 15 de dezembro de 2012

Page 4: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Mauro... quem?

sábado, 15 de dezembro de 2012

Page 5: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Mauro... quem?

sábado, 15 de dezembro de 2012

Page 6: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

sábado, 15 de dezembro de 2012

Page 7: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

sábado, 15 de dezembro de 2012

Page 8: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Mauro George

http://maurogeorge.github.comhttp://www.aprenderphp.com.br@maurogeorge

sábado, 15 de dezembro de 2012

Page 9: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Sistemas de controle de versãoVCS (Version control systems)

sábado, 15 de dezembro de 2012

Page 10: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Pra que?

sábado, 15 de dezembro de 2012

Page 11: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Pra que?

Gerenciar diferentes versões de um arquivo

sábado, 15 de dezembro de 2012

Page 12: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Pra que?

Guardar histórico de alterações de um arquivo

sábado, 15 de dezembro de 2012

Page 13: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Pra que?

Saber quem fez e o porquê de cada alteração

sábado, 15 de dezembro de 2012

Page 14: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Vantagens

sábado, 15 de dezembro de 2012

Page 15: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Vantagens

Backup automático

sábado, 15 de dezembro de 2012

Page 16: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Vantagens

Controle do histórico

sábado, 15 de dezembro de 2012

Page 17: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Vantagens

Trabalho em equipe

sábado, 15 de dezembro de 2012

Page 18: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Vantagens

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

sábado, 15 de dezembro de 2012

Page 19: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Vantagens

Ramificação do projeto

sábado, 15 de dezembro de 2012

Page 20: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Diferentes modelos

sábado, 15 de dezembro de 2012

Page 21: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Centralizado

sábado, 15 de dezembro de 2012

Page 22: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Centralizado

Necessita de um servidor central

sábado, 15 de dezembro de 2012

Page 23: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Centralizado

O checkout é uma cópia da estrutura dos arquivos do repositório

sábado, 15 de dezembro de 2012

Page 24: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Centralizado

Somente usuários autorizados podem fazer commits

sábado, 15 de dezembro de 2012

Page 25: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Centralizado

sábado, 15 de dezembro de 2012

Page 26: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Distribuído

sábado, 15 de dezembro de 2012

Page 27: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Distribuído

Cada cópia é um repositório com o histórico completo

sábado, 15 de dezembro de 2012

Page 28: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Distribuído

Não necessita de acesso a rede ou um servidor central

sábado, 15 de dezembro de 2012

Page 29: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Distribuído

Commits podem ser feitos offline

sábado, 15 de dezembro de 2012

Page 30: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Distribuído

Commits podem ser facilmente transferidos entre repositórios

sábado, 15 de dezembro de 2012

Page 31: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Distribuído

sábado, 15 de dezembro de 2012

Page 32: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Distribuído

sábado, 15 de dezembro de 2012

Page 33: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Pesquisa

sábado, 15 de dezembro de 2012

Page 34: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Utiliza:NenhumSubversionMercurialGitOutro

Pesquisa

sábado, 15 de dezembro de 2012

Page 35: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Git

sábado, 15 de dezembro de 2012

Page 36: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Git

Open source

sábado, 15 de dezembro de 2012

Page 37: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Git

Desenvolvido originalmente por Linus Torvalds, com o objetivo de...

sábado, 15 de dezembro de 2012

Page 38: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Git

.. manter o Kernel do Linux

sábado, 15 de dezembro de 2012

Page 39: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Git

“focado em velocidade, efetividade e usabilidade do mundo real em grandes projetos”

sábado, 15 de dezembro de 2012

Page 40: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Instalação

sábado, 15 de dezembro de 2012

Page 41: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Instalação Mac

DMGhttp://code.google.com/p/git-osx-installer/downloads/list?can=3

Homebrew (mxcl.github.com/homebrew)$ brew install git

sábado, 15 de dezembro de 2012

Page 42: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Instalação Linux

apt-get$ sudo apt-get install git-core git-gui git-doc

sábado, 15 de dezembro de 2012

Page 43: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Instalação Windows

msysgithttp://code.google.com/p/msysgit/downloads/list

* Use Git Bash Only** Checkout Windows-style, commit Unix-style line endings

sábado, 15 de dezembro de 2012

Page 44: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

GUIs

sábado, 15 de dezembro de 2012

Page 45: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

GUIs Gitk para todas as plataformas

sábado, 15 de dezembro de 2012

Page 46: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

GUIs GitX (L) para Mac

http://gitx.laullon.com/ *GitX -> Enable Terminal Usage

sábado, 15 de dezembro de 2012

Page 47: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Gerenciador de pacotes

GUIs Gitg para Linux

sábado, 15 de dezembro de 2012

Page 48: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

http://code.google.com/p/tortoisegit/

GUIs tortoisegit para Windows

sábado, 15 de dezembro de 2012

Page 49: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Primeiros passos

sábado, 15 de dezembro de 2012

Page 50: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Primeiros passos

Configuração$ git config --global user.name "Mauro George"$ git config --global user.email "[email protected]"

sábado, 15 de dezembro de 2012

Page 51: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Primeiros passos

Criando nosso projeto

$ mkdir project$ cd project$ touch hello_world.php

sábado, 15 de dezembro de 2012

Page 52: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Primeiros passos

Criando um repositório

$ git init

sábado, 15 de dezembro de 2012

Page 53: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Primeiros passos

Criando um repositório

$ git init

Output:Initialized empty Git repository in /path/to/my/project/.git/

sábado, 15 de dezembro de 2012

Page 54: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Primeiros passos

Primeiro commit

$ git add .$ git commit -m "first commit"

sábado, 15 de dezembro de 2012

Page 55: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Primeiros passos

Primeiro commit

$ git add .$ git commit -m "first commit"

Output:[master (root-commit) bf3bd62] first commit 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 hello_world.php

sábado, 15 de dezembro de 2012

Page 56: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Primeiros passos

Primeiro commit

$ git status

sábado, 15 de dezembro de 2012

Page 57: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Primeiros passos

Primeiro commit

$ git status

Output:# On branch masternothing to commit (working directory clean)

sábado, 15 de dezembro de 2012

Page 58: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

sábado, 15 de dezembro de 2012

Page 59: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivosUntrackedModifiedStagedCommited

sábado, 15 de dezembro de 2012

Page 60: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos UntrackedArquivos que o git não conhece

sábado, 15 de dezembro de 2012

Page 61: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos Untracked$ touch Readme$ git status

sábado, 15 de dezembro de 2012

Page 62: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos Untracked$ touch Readme$ git status

Output:# On branch master# Untracked files:# (use "git add <file>..." to include in what will be committed)## Readmenothing added to commit but untracked files present (use "git add" to track)

sábado, 15 de dezembro de 2012

Page 63: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos ModifiedArquivos que o git já conhece e que foram alterados

sábado, 15 de dezembro de 2012

Page 64: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos Modified$ vim hello_world.php

<?php echo 'Hello world';?>

sábado, 15 de dezembro de 2012

Page 65: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos Modified$ git status

sábado, 15 de dezembro de 2012

Page 66: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos Modified

Output:

# On branch master# Changes not staged for commit:# (use "git add <file>..." to update what will be committed)# (use "git checkout -- <file>..." to discard changes in working directory)## modified: hello_world.php## Untracked files:# (use "git add <file>..." to include in what will be committed)## Readmeno changes added to commit (use "git add" and/or "git commit -a")

sábado, 15 de dezembro de 2012

Page 67: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos StagedArquivos que serão enviados para o repositório

sábado, 15 de dezembro de 2012

Page 68: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos Staged$ git add hello_world.php$ git status

sábado, 15 de dezembro de 2012

Page 69: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos Staged$ git add hello_world.php$ git status

Output:# On branch master# Changes to be committed:# (use "git reset HEAD <file>..." to unstage)## modified: hello_world.php## Untracked files:# (use "git add <file>..." to include in what will be committed)## Readme

sábado, 15 de dezembro de 2012

Page 70: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos CommitedArquivos que já estão no repositório git

sábado, 15 de dezembro de 2012

Page 71: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos Commited$ git commit -m "showing hello world"

sábado, 15 de dezembro de 2012

Page 72: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos Commited$ git commit -m "showing hello world"

Output:[master 83d672c] showing hello world 1 files changed, 3 insertions(+), 0 deletions(-)

sábado, 15 de dezembro de 2012

Page 73: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos Commited$ git status

sábado, 15 de dezembro de 2012

Page 74: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Estado dos arquivos Commited$ git status

Output:# On branch master# Untracked files:# (use "git add <file>..." to include in what will be committed)## Readmenothing added to commit but untracked files present (use "git add" to track)

sábado, 15 de dezembro de 2012

Page 75: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Dica

Colorindo o output$ git config --global color.ui true

sábado, 15 de dezembro de 2012

Page 76: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Fluxo básico

Resumo

Editar os arquivos Vim / emacs / textmate / etc

Colocar os arquivos em staged git add nome do arquivo

Verificar as mudanças git status

Fazer o commit das mudançasgit commit -m “mensagem do commit”

sábado, 15 de dezembro de 2012

Page 77: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Dica

Sempre leia as mensagens do Git

Output:

# On branch master# Changes to be committed:# (use "git reset HEAD <file>..." to unstage)## modified: hello_world.php## Untracked files:# (use "git add <file>..." to include in what will be committed)## Readme

sábado, 15 de dezembro de 2012

Page 78: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

sábado, 15 de dezembro de 2012

Page 79: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diffVisualiza o que foi modificado

sábado, 15 de dezembro de 2012

Page 80: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diff$ vim hello_world.php

<?php echo ‘Hello world, na PHP Conference Brasil 2012’;?>

sábado, 15 de dezembro de 2012

Page 81: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diff$ git diff

sábado, 15 de dezembro de 2012

Page 82: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diff$ git diff

Output:diff --git a/hello_world.php b/hello_world.phpindex fe71dc6..04beafa 100644--- a/hello_world.php+++ b/hello_world.php@@ -1,3 +1,3 @@ <?php- echo 'Hello world';+ echo ‘Hello world, na PHP Conference Brasil 2012’; ?>\ No newline at end of file

sábado, 15 de dezembro de 2012

Page 83: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diff --word-diffVisualiza o que foi modificado, diferenciando por palavras

sábado, 15 de dezembro de 2012

Page 84: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diff --word-diff$ git diff --word-diff

sábado, 15 de dezembro de 2012

Page 85: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diff --word-diff$ git diff --word-diff

Output:diff --git a/hello_world.php b/hello_world.phpindex fe71dc6..04beafa 100644--- a/hello_world.php+++ b/hello_world.php@@ -1,3 +1,3 @@<?php echo ‘Hello [-world’;-]{+world, na PHP Conference Brasil 2012”;+}?> No newline at end of file

sábado, 15 de dezembro de 2012

Page 86: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diff --cachedVisualiza o que foi modificado e está staged

sábado, 15 de dezembro de 2012

Page 87: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diff --cached$ git add hello_world.php$ git status

sábado, 15 de dezembro de 2012

Page 88: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diff --cached$ git add hello_world.php$ git status

Output:# On branch master# Changes to be committed:# (use "git reset HEAD <file>..." to unstage)## modified: hello_world.php## Untracked files:# (use "git add <file>..." to include in what will be committed)## Readme

sábado, 15 de dezembro de 2012

Page 89: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diff --cached$ git diff

sábado, 15 de dezembro de 2012

Page 90: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diff --cached$ git diff

Output:

sábado, 15 de dezembro de 2012

Page 91: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diff --cached$ git diff --cached

sábado, 15 de dezembro de 2012

Page 92: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git diff --cached$ git diff --cached

Output:diff --git a/hello_world.php b/hello_world.phpindex fe71dc6..04beafa 100644--- a/hello_world.php+++ b/hello_world.php@@ -1,3 +1,3 @@ <?php- echo 'Hello world';+ echo ‘Hello world, na PHP Conference Brasil 2012’; ?>\ No newline at end of file

sábado, 15 de dezembro de 2012

Page 93: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

Commitando nossas alterações para continuarmos...$ git commit -m "change hello world message"

sábado, 15 de dezembro de 2012

Page 94: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git commit -am Envia de modified para commited diretamente

sábado, 15 de dezembro de 2012

Page 95: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git commit -am $ vim hello_world.php

<?php echo ‘Hello world, na PHP Conference Brasil 2012 em 30/11/2012’;?>

sábado, 15 de dezembro de 2012

Page 96: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git commit -am $ git status

sábado, 15 de dezembro de 2012

Page 97: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git commit -am $ git status

Output:# On branch master# Changes not staged for commit:# (use "git add <file>..." to update what will be committed)# (use "git checkout -- <file>..." to discard changes in working directory)## modified: hello_world.php## Untracked files:# (use "git add <file>..." to include in what will be committed)## Readmeno changes added to commit (use "git add" and/or "git commit -a")

sábado, 15 de dezembro de 2012

Page 98: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git commit -am $ git commit -am "added date on hello world"

sábado, 15 de dezembro de 2012

Page 99: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git commit -am $ git commit -am "added date on hello world"

Output:[master 518bad1] added date on hello world 1 files changed, 1 insertions(+), 1 deletions(-)

sábado, 15 de dezembro de 2012

Page 100: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git commit -am $ git status

sábado, 15 de dezembro de 2012

Page 101: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git commit -am $ git status

Output:# On branch master# Untracked files:# (use "git add <file>..." to include in what will be committed)## Readmenothing added to commit but untracked files present (use "git add" to track)

sábado, 15 de dezembro de 2012

Page 102: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Dica

Se o git não conhece ele não mexe

sábado, 15 de dezembro de 2012

Page 103: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

Editando e commitando o Readme para continuarmos...$ vim Readme$ git add Readme$ git commit -m "added readme"

sábado, 15 de dezembro de 2012

Page 104: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git logExibe o histórico com infomações dos commits

sábado, 15 de dezembro de 2012

Page 105: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git log$ git log

sábado, 15 de dezembro de 2012

Page 106: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git log$ git log

Output:commit a6aa0cb4d832a3a7c3a26001d89d8698e73790bbAuthor: Mauro George <[email protected]>Date: Fri Jan 20 15:59:33 2012 -0200

added readme

commit 518bad17f1bc064f4d542683925ae9f1003609bdAuthor: Mauro George <[email protected]>Date: Fri Jan 20 15:27:07 2012 -0200

added date on hello world

sábado, 15 de dezembro de 2012

Page 107: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git log --onelineExibe o log em apenas uma linha

sábado, 15 de dezembro de 2012

Page 108: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git log --oneline$ git log --oneline

sábado, 15 de dezembro de 2012

Page 109: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Comandos

git log --oneline$ git log --oneline

Output:53bc92d Revert "added date on hello world"a6aa0cb added readme518bad1 added date on hello world0e1b665 change hello world message83d672c showing hello worldbf3bd62 first commit

sábado, 15 de dezembro de 2012

Page 110: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

sábado, 15 de dezembro de 2012

Page 111: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout <hash>Volta para o commit informado em <hash>

sábado, 15 de dezembro de 2012

Page 112: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout <hash>$ git checkout bf3bd62

sábado, 15 de dezembro de 2012

Page 113: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

$ git checkout bf3bd62

Voltando no tempo

git checkout <hash> Hash do primeiro commit

sábado, 15 de dezembro de 2012

Page 114: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

$ git checkout bf3bd62

Voltando no tempo

git checkout <hash> Hash do primeiro commit

Output:Note: checking out 'bf3bd62'.

You are in 'detached HEAD' state. You can look around, make experimentalchanges and commit them, and you can discard any commits you make in thisstate without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you maydo so (now or later) by using -b with the checkout command again. Example:

git checkout -b new_branch_name

HEAD is now at bf3bd62... first commit

sábado, 15 de dezembro de 2012

Page 115: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout <hash>$ lshello_world.php$ cat hello_world.php

sábado, 15 de dezembro de 2012

Page 116: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout <hash> De volta para o futuro $ git checkout master

sábado, 15 de dezembro de 2012

Page 117: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout <hash> De volta para o futuro $ git checkout master

Output:Previous HEAD position was bf3bd62... first commitSwitched to branch 'master'

sábado, 15 de dezembro de 2012

Page 118: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout <hash> De volta para o futuro$ lsReadme hello_world.php$ cat hello_world.php<?php echo ‘Hello world, na PHP Conference Brasil 2012 em 30/11/2012’;?>

sábado, 15 de dezembro de 2012

Page 119: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git revert <hash>Reverte um commit criando um novo

sábado, 15 de dezembro de 2012

Page 120: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

$ git revert 518bad1

Voltando no tempo

git revert <hash>

sábado, 15 de dezembro de 2012

Page 121: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git revert <hash>$ git revert 518bad1

Hash do quarto commit.

Em que foi adicionada a data

sábado, 15 de dezembro de 2012

Page 122: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git revert <hash>$ git revert 518bad1

Hash do quarto commit.

Em que foi adicionada a data

Output:[master 53bc92d] Revert "added date on hello world" 1 files changed, 1 insertions(+), 1 deletions(-)

sábado, 15 de dezembro de 2012

Page 123: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git revert <hash>$ git revert 518bad1

Hash do quarto commit.

Em que foi adicionada a data

Output:[master 53bc92d] Revert "added date on hello world" 1 files changed, 1 insertions(+), 1 deletions(-)

* Será solicitado para digitar uma mensagem do commit, mantenha a padrão por convenção

sábado, 15 de dezembro de 2012

Page 124: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

$ cat hello_world.php<?php echo ‘Hello world, na PHP Conference Brasil 2012’;?>

Voltando no tempo

git revert <hash>

sábado, 15 de dezembro de 2012

Page 125: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Dica

Commits pequenos e constantes

Created model of User

Boa mensagem de commit

Created model of User, Post and Comments and added template files

Má mensagem de commit

sábado, 15 de dezembro de 2012

Page 126: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout <hash> <arquivo>Recupera o arquivo do commit informado

sábado, 15 de dezembro de 2012

Page 127: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout <hash> <arquivo>$ git checkout 83d672c hello_world.php

sábado, 15 de dezembro de 2012

Page 128: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout <hash> <arquivo>$ git checkout 83d672c hello_world.php

Hash do segundo commit.Em que foi criada a mensagem

sábado, 15 de dezembro de 2012

Page 129: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout <hash> <arquivo>$ git status

sábado, 15 de dezembro de 2012

Page 130: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout <hash> <arquivo>$ git status

Output:# On branch master# Changes to be committed:# (use "git reset HEAD <file>..." to unstage)## modified: hello_world.php#

sábado, 15 de dezembro de 2012

Page 131: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout <hash> <arquivo>$ git diff --cached

sábado, 15 de dezembro de 2012

Page 132: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout <hash> <arquivo>$ git diff --cached

Output:diff --git a/hello_world.php b/hello_world.phpindex 04beafa..fe71dc6 100644--- a/hello_world.php+++ b/hello_world.php@@ -1,3 +1,3 @@ <?php- echo ‘Hello world, na PHP Conference Brasil 2012’;+ echo 'Hello world'; ?>\ No newline at end of file

sábado, 15 de dezembro de 2012

Page 133: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout .Recupera todos os arquivos sobreescrevendo as mudanças locais

sábado, 15 de dezembro de 2012

Page 134: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout .$ vim hello_world.php$ vim Readme

sábado, 15 de dezembro de 2012

Page 135: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout .$ vim hello_world.php$ vim Readme

sábado, 15 de dezembro de 2012

Page 136: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout .$ git status

sábado, 15 de dezembro de 2012

Page 137: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout .$ git status

Output:# On branch master# Changes not staged for commit:# (use "git add <file>..." to update what will be committed)# (use "git checkout -- <file>..." to discard changes in working directory)## modified: Readme# modified: hello_world.php#no changes added to commit (use "git add" and/or "git commit -a")

sábado, 15 de dezembro de 2012

Page 138: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout .$ git checkout .

sábado, 15 de dezembro de 2012

Page 139: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout .$ git status

sábado, 15 de dezembro de 2012

Page 140: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Voltando no tempo

git checkout .$ git status

Output:# On branch masternothing to commit (working directory clean)

sábado, 15 de dezembro de 2012

Page 141: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

sábado, 15 de dezembro de 2012

Page 142: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

vimeo.com/2979844

23 de janeiro de 2005

Github

sábado, 15 de dezembro de 2012

Page 143: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Github

19 de janeiro de 2009

vimeo.com/2979844sábado, 15 de dezembro de 2012

Page 144: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

https://github.com/BielSystems/boletophp/

Boleto PHP

sábado, 15 de dezembro de 2012

Page 145: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

https://github.com/BielSystems/boletophp/

Boleto PHP

sábado, 15 de dezembro de 2012

Page 146: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Boleto PHP

sábado, 15 de dezembro de 2012

Page 147: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Perguntas?

sábado, 15 de dezembro de 2012

Page 148: Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

Obrigado!@maurogeorge

maurogeorge.github.com

sábado, 15 de dezembro de 2012