SlideShare a Scribd company logo
1 of 148
Download to read offline
Git para iniciantes




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




sábado, 15 de dezembro de 2012
Mauro... quem?




sábado, 15 de dezembro de 2012
Mauro... quem?




sábado, 15 de dezembro de 2012
Mauro... quem?




sábado, 15 de dezembro de 2012
sábado, 15 de dezembro de 2012
sábado, 15 de dezembro de 2012
Mauro George
        http://maurogeorge.github.com
        http://www.aprenderphp.com.br
        @maurogeorge




sábado, 15 de dezembro de 2012
Sistemas de controle de versão
                                 VCS (Version control systems)




sábado, 15 de dezembro de 2012
Pra que?




sábado, 15 de dezembro de 2012
Pra que?




         Gerenciar diferentes versões de um arquivo

sábado, 15 de dezembro de 2012
Pra que?




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

sábado, 15 de dezembro de 2012
Pra que?




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

sábado, 15 de dezembro de 2012
Vantagens




sábado, 15 de dezembro de 2012
Vantagens




         Backup automático

sábado, 15 de dezembro de 2012
Vantagens




         Controle do histórico

sábado, 15 de dezembro de 2012
Vantagens




         Trabalho em equipe

sábado, 15 de dezembro de 2012
Vantagens




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

sábado, 15 de dezembro de 2012
Vantagens




         Ramificação do projeto

sábado, 15 de dezembro de 2012
Diferentes modelos




sábado, 15 de dezembro de 2012
Centralizado




sábado, 15 de dezembro de 2012
Centralizado




         Necessita de um servidor central

sábado, 15 de dezembro de 2012
Centralizado




         O checkout é uma cópia da estrutura dos arquivos do
         repositório
sábado, 15 de dezembro de 2012
Centralizado




         Somente usuários autorizados podem fazer commits

sábado, 15 de dezembro de 2012
Centralizado




sábado, 15 de dezembro de 2012
Distribuído




sábado, 15 de dezembro de 2012
Distribuído




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

sábado, 15 de dezembro de 2012
Distribuído




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

sábado, 15 de dezembro de 2012
Distribuído




         Commits podem ser feitos offline

sábado, 15 de dezembro de 2012
Distribuído




         Commits podem ser facilmente transferidos entre
         repositórios
sábado, 15 de dezembro de 2012
Distribuído




sábado, 15 de dezembro de 2012
Distribuído




sábado, 15 de dezembro de 2012
Pesquisa




sábado, 15 de dezembro de 2012
Pesquisa
         Utiliza:
         Nenhum
         Subversion
         Mercurial
         Git
         Outro




sábado, 15 de dezembro de 2012
Git




sábado, 15 de dezembro de 2012
Git




         Open source

sábado, 15 de dezembro de 2012
Git




         Desenvolvido originalmente por Linus Torvalds, com o
         objetivo de...
sábado, 15 de dezembro de 2012
Git




         .. manter o Kernel do Linux
sábado, 15 de dezembro de 2012
Git




         “focado em velocidade, efetividade e usabilidade do
         mundo real em grandes projetos”
sábado, 15 de dezembro de 2012
Instalação




sábado, 15 de dezembro de 2012
Instalação Mac

         DMG
         http://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
Instalação Linux

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




sábado, 15 de dezembro de 2012
Instalação Windows

         msysgit
         http://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
GUIs




sábado, 15 de dezembro de 2012
GUIs Gitk para todas as
         plataformas




sábado, 15 de dezembro de 2012
GUIs GitX (L) para Mac




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


sábado, 15 de dezembro de 2012
GUIs Gitg para Linux




         Gerenciador de pacotes
sábado, 15 de dezembro de 2012
GUIs tortoisegit para Windows




         http://code.google.com/p/tortoisegit/
sábado, 15 de dezembro de 2012
Primeiros passos




sábado, 15 de dezembro de 2012
Primeiros passos

         Configuração
         $ git config --global user.name "Mauro George"
         $ git config --global user.email "maurogot@gmail.com"




sábado, 15 de dezembro de 2012
Primeiros passos

         Criando nosso projeto
         $ mkdir project
         $ cd project
         $ touch hello_world.php




sábado, 15 de dezembro de 2012
Primeiros passos

         Criando um repositório
         $ git init




sábado, 15 de dezembro de 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
Primeiros passos

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




sábado, 15 de dezembro de 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
Primeiros passos

         Primeiro commit
         $ git status




sábado, 15 de dezembro de 2012
Primeiros passos

         Primeiro commit
         $ git status



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




sábado, 15 de dezembro de 2012
Fluxo básico




sábado, 15 de dezembro de 2012
Fluxo básico

         Estado dos arquivos
         Untracked
         Modified
         Staged
         Commited




sábado, 15 de dezembro de 2012
Fluxo básico

         Estado dos arquivos Untracked
         Arquivos que o git não conhece




sábado, 15 de dezembro de 2012
Fluxo básico

         Estado dos arquivos Untracked
         $ touch Readme
         $ git status




sábado, 15 de dezembro de 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)
         #
         #	

 Readme
         nothing added to commit but untracked files present (use "git add" to track)

sábado, 15 de dezembro de 2012
Fluxo básico

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




sábado, 15 de dezembro de 2012
Fluxo básico

         Estado dos arquivos Modified
         $ vim hello_world.php

         <?php
          echo 'Hello world';
         ?>




sábado, 15 de dezembro de 2012
Fluxo básico

         Estado dos arquivos Modified
         $ git status




sábado, 15 de dezembro de 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)
         #
         #	

 Readme
         no changes added to commit (use "git add" and/or "git commit -a")

sábado, 15 de dezembro de 2012
Fluxo básico

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




sábado, 15 de dezembro de 2012
Fluxo básico

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




sábado, 15 de dezembro de 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
Fluxo básico

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




sábado, 15 de dezembro de 2012
Fluxo básico

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




sábado, 15 de dezembro de 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
Fluxo básico

         Estado dos arquivos Commited
         $ git status




sábado, 15 de dezembro de 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)
         #
         #	

 Readme
         nothing added to commit but untracked files present (use "git add" to track)

sábado, 15 de dezembro de 2012
Dica

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




sábado, 15 de dezembro de 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

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



sábado, 15 de dezembro de 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
Comandos




sábado, 15 de dezembro de 2012
Comandos

         git diff
         Visualiza o que foi modificado




sábado, 15 de dezembro de 2012
Comandos

         git diff
         $ vim hello_world.php

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




sábado, 15 de dezembro de 2012
Comandos

         git diff
         $ git diff




sábado, 15 de dezembro de 2012
Comandos

         git diff
         $ git diff

         Output:
         diff --git a/hello_world.php b/hello_world.php
         index 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
Comandos

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




sábado, 15 de dezembro de 2012
Comandos

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




sábado, 15 de dezembro de 2012
Comandos

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


         Output:
         diff --git a/hello_world.php b/hello_world.php
         index 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
Comandos

         git diff --cached
         Visualiza o que foi modificado e está staged




sábado, 15 de dezembro de 2012
Comandos

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




sábado, 15 de dezembro de 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
Comandos

         git diff --cached
         $ git diff




sábado, 15 de dezembro de 2012
Comandos

         git diff --cached
         $ git diff


         Output:




sábado, 15 de dezembro de 2012
Comandos

         git diff --cached
         $ git diff --cached




sábado, 15 de dezembro de 2012
Comandos

         git diff --cached
         $ git diff --cached


         Output:
         diff --git a/hello_world.php b/hello_world.php
         index 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
Comandos

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




sábado, 15 de dezembro de 2012
Comandos

         git commit -am
         Envia de modified para commited diretamente




sábado, 15 de dezembro de 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
Comandos

         git commit -am
         $ git status




sábado, 15 de dezembro de 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)
         #
         # Readme
         no changes added to commit (use "git add" and/or "git commit -a")
sábado, 15 de dezembro de 2012
Comandos

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




sábado, 15 de dezembro de 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
Comandos

         git commit -am
         $ git status




sábado, 15 de dezembro de 2012
Comandos

         git commit -am
         $ git status




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

sábado, 15 de dezembro de 2012
Dica

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




sábado, 15 de dezembro de 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
Comandos

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




sábado, 15 de dezembro de 2012
Comandos

         git log
         $ git log




sábado, 15 de dezembro de 2012
Comandos

         git log
         $ git log


        Output:
        commit a6aa0cb4d832a3a7c3a26001d89d8698e73790bb
        Author: Mauro George <maurogot@gmail.com>
        Date: Fri Jan 20 15:59:33 2012 -0200

           added readme

        commit 518bad17f1bc064f4d542683925ae9f1003609bd
        Author: Mauro George <maurogot@gmail.com>
        Date: Fri Jan 20 15:27:07 2012 -0200

           added date on hello world
sábado, 15 de dezembro de 2012
Comandos

         git log --oneline
         Exibe o log em apenas uma linha




sábado, 15 de dezembro de 2012
Comandos

         git log --oneline
         $ git log --oneline




sábado, 15 de dezembro de 2012
Comandos

         git log --oneline
         $ git log --oneline




        Output:
        53bc92d Revert "added date on hello world"
        a6aa0cb added readme
        518bad1 added date on hello world
        0e1b665 change hello world message
        83d672c showing hello world
        bf3bd62 first commit

sábado, 15 de dezembro de 2012
Voltando no tempo




sábado, 15 de dezembro de 2012
Voltando no tempo

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




sábado, 15 de dezembro de 2012
Voltando no tempo

         git checkout <hash>
         $ git checkout bf3bd62




sábado, 15 de dezembro de 2012
Voltando no tempo

         git checkout <hash>      Hash do primeiro commit
         $ git checkout bf3bd62




sábado, 15 de dezembro de 2012
Voltando no tempo

         git checkout <hash>                               Hash do primeiro commit
         $ git checkout bf3bd62

        Output:
        Note: checking out 'bf3bd62'.

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

        If you want to create a new branch to retain commits you create, you may
        do 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
Voltando no tempo

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




sábado, 15 de dezembro de 2012
Voltando no tempo

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




sábado, 15 de dezembro de 2012
Voltando no tempo

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




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

sábado, 15 de dezembro de 2012
Voltando no tempo

         git checkout <hash> De volta para o futuro
         $ ls
         Readme        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
Voltando no tempo

         git revert <hash>
         Reverte um commit criando um novo




sábado, 15 de dezembro de 2012
Voltando no tempo

         git revert <hash>
         $ git revert 518bad1




sábado, 15 de dezembro de 2012
Voltando no tempo

                                          Hash do
         git revert <hash>            quarto commit.
         $ git revert 518bad1    Em que foi adicionada a data




sábado, 15 de dezembro de 2012
Voltando no tempo

                                                               Hash do
         git revert <hash>                                 quarto commit.
         $ git revert 518bad1                         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
Voltando no tempo

                                                               Hash do
         git revert <hash>                                 quarto commit.
         $ git revert 518bad1                         Em que foi adicionada a data




                                                                            * Será solicitado para
                                                                            digitar uma mensagem
                                                                            do commit, mantenha a
                                                                            padrão por convenção
        Output:
        [master 53bc92d] Revert "added date on hello world"
         1 files changed, 1 insertions(+), 1 deletions(-)

sábado, 15 de dezembro de 2012
Voltando no tempo

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




sábado, 15 de dezembro de 2012
Dica

         Commits pequenos e constantes

         Boa mensagem de commit
         Created model of User


         Má mensagem de commit
         Created model of User, Post and Comments and added template
         files

sábado, 15 de dezembro de 2012
Voltando no tempo

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




sábado, 15 de dezembro de 2012
Voltando no tempo

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




sábado, 15 de dezembro de 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
Voltando no tempo

         git checkout <hash> <arquivo>
         $ git status




sábado, 15 de dezembro de 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
Voltando no tempo

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




sábado, 15 de dezembro de 2012
Voltando no tempo

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



        Output:
        diff --git a/hello_world.php b/hello_world.php
        index 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
Voltando no tempo

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




sábado, 15 de dezembro de 2012
Voltando no tempo

         git checkout .
         $ vim hello_world.php
         $ vim Readme




sábado, 15 de dezembro de 2012
Voltando no tempo

         git checkout .
         $ vim hello_world.php
         $ vim Readme




sábado, 15 de dezembro de 2012
Voltando no tempo

         git checkout .
         $ git status




sábado, 15 de dezembro de 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
Voltando no tempo

         git checkout .
         $ git checkout .




sábado, 15 de dezembro de 2012
Voltando no tempo

         git checkout .
         $ git status




sábado, 15 de dezembro de 2012
Voltando no tempo

         git checkout .
         $ git status




        Output:
        # On branch master
        nothing to commit (working directory clean)
sábado, 15 de dezembro de 2012
sábado, 15 de dezembro de 2012
Github




                                                     23 de janeiro de 2005

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




                                                     19 de janeiro de 2009

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




                        https://github.com/BielSystems/boletophp/
sábado, 15 de dezembro de 2012
Boleto PHP




                          https://github.com/BielSystems/boletophp/
sábado, 15 de dezembro de 2012
Boleto PHP




sábado, 15 de dezembro de 2012
Perguntas?




sábado, 15 de dezembro de 2012
Obrigado!
                                    @maurogeorge
                                 maurogeorge.github.com




sábado, 15 de dezembro de 2012

More Related Content

What's hot

Git e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson AjacksonGit e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson AjacksonAlysson Ajackson
 
Git e git hub para iniciantes
Git e git hub para iniciantesGit e git hub para iniciantes
Git e git hub para iniciantesMario Ernesto
 
Controle de versão com Git e BitBucket
Controle de versão com Git e BitBucketControle de versão com Git e BitBucket
Controle de versão com Git e BitBucketMarcio Barbosa
 
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git FlowControle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git FlowLucas Araújo Mezêncio
 
Use o git e perca o medo de errar
Use o git e perca o medo de errarUse o git e perca o medo de errar
Use o git e perca o medo de errarBruno Calheira
 
Treinamento git - Papos RBSDev
Treinamento git - Papos RBSDevTreinamento git - Papos RBSDev
Treinamento git - Papos RBSDevHélio Medeiros
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com GitVagner Santana
 
Git - GitHub
Git - GitHubGit - GitHub
Git - GitHubWagner
 
Git - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteWaldyr Felix
 
Mini aula-sublime-text-git-e-github
Mini aula-sublime-text-git-e-githubMini aula-sublime-text-git-e-github
Mini aula-sublime-text-git-e-githubWilson Mendes
 
Git - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoGit - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoWilliam Lima
 
Aula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - WebschoolAula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - WebschoolBruno Orlandi
 

What's hot (20)

Git e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson AjacksonGit e Github para Iniciantes by Alysson Ajackson
Git e Github para Iniciantes by Alysson Ajackson
 
Git e git hub para iniciantes
Git e git hub para iniciantesGit e git hub para iniciantes
Git e git hub para iniciantes
 
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos BásicosGit e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
 
Controle de versão com Git e BitBucket
Controle de versão com Git e BitBucketControle de versão com Git e BitBucket
Controle de versão com Git e BitBucket
 
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git FlowControle de Versão com Git e como Otimizar seu Workflow com Git Flow
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
 
GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Git
GitGit
Git
 
Use o git e perca o medo de errar
Use o git e perca o medo de errarUse o git e perca o medo de errar
Use o git e perca o medo de errar
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
Treinamento git - Papos RBSDev
Treinamento git - Papos RBSDevTreinamento git - Papos RBSDev
Treinamento git - Papos RBSDev
 
Git e Github
Git e GithubGit e Github
Git e Github
 
Controle de Versões com Git
Controle de Versões com GitControle de Versões com Git
Controle de Versões com Git
 
Git - GitHub
Git - GitHubGit - GitHub
Git - GitHub
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
Git - Rápido, seguro, eficiente
Git - Rápido, seguro, eficienteGit - Rápido, seguro, eficiente
Git - Rápido, seguro, eficiente
 
Git
GitGit
Git
 
Mini aula-sublime-text-git-e-github
Mini aula-sublime-text-git-e-githubMini aula-sublime-text-git-e-github
Mini aula-sublime-text-git-e-github
 
Git - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotadoGit - Fluxo do Versionamento adotado
Git - Fluxo do Versionamento adotado
 
Aula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - WebschoolAula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - Webschool
 
Controle de versão e colaboração com Git
Controle de versão e colaboração com GitControle de versão e colaboração com Git
Controle de versão e colaboração com Git
 

Similar to Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareEIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareAldson Diego
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Tchelinux
 
Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com GitRaphael Cruzeiro
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Danilo Pinotti
 
Git para Principiantes - Fabio Beneditto - Tchelinux Caxias 2018
Git para Principiantes -  Fabio Beneditto - Tchelinux Caxias 2018Git para Principiantes -  Fabio Beneditto - Tchelinux Caxias 2018
Git para Principiantes - Fabio Beneditto - Tchelinux Caxias 2018Tchelinux
 
Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017
Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017
Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017Tchelinux
 
Facilitando a Colaboração com GitHub - SFDSSA2012
Facilitando a Colaboração com GitHub - SFDSSA2012Facilitando a Colaboração com GitHub - SFDSSA2012
Facilitando a Colaboração com GitHub - SFDSSA2012Cleverson Sacramento
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACDanilo Pinotti
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET ComputaçãoBruno Orlandi
 
Conhecendo o git.
Conhecendo o git.Conhecendo o git.
Conhecendo o git.Rafael Ivan
 
Git that like a boss: Grupo RBS
Git that like a boss: Grupo RBSGit that like a boss: Grupo RBS
Git that like a boss: Grupo RBSEvandro Eisinger
 
Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta gitDiogo Souza Machado
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesLeandro Cavalcante
 
Palestra na FEA USP - Pentaho: Fazendo mais com menos - Evento ComTycho Day 2012
Palestra na FEA USP - Pentaho: Fazendo mais com menos - Evento ComTycho Day 2012Palestra na FEA USP - Pentaho: Fazendo mais com menos - Evento ComTycho Day 2012
Palestra na FEA USP - Pentaho: Fazendo mais com menos - Evento ComTycho Day 2012Caio Moreno
 
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amorMeetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amorStefan Teixeira
 

Similar to Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012 (20)

EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareEIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de Software
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
 
Techtalk riojs
Techtalk riojsTechtalk riojs
Techtalk riojs
 
Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
 
Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)Minicurso GIT Completo (2022)
Minicurso GIT Completo (2022)
 
Git para Principiantes - Fabio Beneditto - Tchelinux Caxias 2018
Git para Principiantes -  Fabio Beneditto - Tchelinux Caxias 2018Git para Principiantes -  Fabio Beneditto - Tchelinux Caxias 2018
Git para Principiantes - Fabio Beneditto - Tchelinux Caxias 2018
 
Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017
Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017
Git para Principiantes - Fabio Beneditto - Tchelinux Bento Gonçalves 2017
 
Facilitando a Colaboração com GitHub - SFDSSA2012
Facilitando a Colaboração com GitHub - SFDSSA2012Facilitando a Colaboração com GitHub - SFDSSA2012
Facilitando a Colaboração com GitHub - SFDSSA2012
 
Github
GithubGithub
Github
 
Minicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENACMinicurso GIT 2022 - SENAC
Minicurso GIT 2022 - SENAC
 
Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET Computação
 
Conhecendo o git.
Conhecendo o git.Conhecendo o git.
Conhecendo o git.
 
Curso git-0001
Curso git-0001Curso git-0001
Curso git-0001
 
Git that like a boss: Grupo RBS
Git that like a boss: Grupo RBSGit that like a boss: Grupo RBS
Git that like a boss: Grupo RBS
 
Git ...ftw!
Git ...ftw!  Git ...ftw!
Git ...ftw!
 
Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta git
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de Versões
 
Palestra na FEA USP - Pentaho: Fazendo mais com menos - Evento ComTycho Day 2012
Palestra na FEA USP - Pentaho: Fazendo mais com menos - Evento ComTycho Day 2012Palestra na FEA USP - Pentaho: Fazendo mais com menos - Evento ComTycho Day 2012
Palestra na FEA USP - Pentaho: Fazendo mais com menos - Evento ComTycho Day 2012
 
São Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOpsSão Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOps
 
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amorMeetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
Meetup DevOps Carioca - GoCD + Docker + Docker Compose: uma história de amor
 

More from Mauro George

Aprendendo com projetos open source @ RubyConf 2015
Aprendendo com projetos open source @ RubyConf 2015Aprendendo com projetos open source @ RubyConf 2015
Aprendendo com projetos open source @ RubyConf 2015Mauro George
 
Rails front-end com bourbon e sua familia @ Front in Maceió 2014
Rails front-end com bourbon e sua familia @ Front in Maceió 2014Rails front-end com bourbon e sua familia @ Front in Maceió 2014
Rails front-end com bourbon e sua familia @ Front in Maceió 2014Mauro George
 
RSpec Best Friends @ Rupy Natal 2014
RSpec Best Friends @ Rupy Natal 2014RSpec Best Friends @ Rupy Natal 2014
RSpec Best Friends @ Rupy Natal 2014Mauro George
 
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014Mauro George
 
O cliente e o time juntos por um só objetivo! @ CONADEV 2014
O cliente e o time juntos por um só objetivo! @ CONADEV 2014O cliente e o time juntos por um só objetivo! @ CONADEV 2014
O cliente e o time juntos por um só objetivo! @ CONADEV 2014Mauro George
 
RSpec Best Friends @ TDC São Paulo 2014
RSpec Best Friends @ TDC São Paulo 2014RSpec Best Friends @ TDC São Paulo 2014
RSpec Best Friends @ TDC São Paulo 2014Mauro George
 
RSpec Best Friends @ TDC Florianópolis 2014
RSpec Best Friends @ TDC Florianópolis 2014RSpec Best Friends @ TDC Florianópolis 2014
RSpec Best Friends @ TDC Florianópolis 2014Mauro George
 
Model of the colossus @ Rupy Brazil 2013
Model of the colossus @ Rupy Brazil 2013 Model of the colossus @ Rupy Brazil 2013
Model of the colossus @ Rupy Brazil 2013 Mauro George
 
Model of the colossus @ Café com Dev
Model of the colossus @ Café com DevModel of the colossus @ Café com Dev
Model of the colossus @ Café com DevMauro George
 

More from Mauro George (9)

Aprendendo com projetos open source @ RubyConf 2015
Aprendendo com projetos open source @ RubyConf 2015Aprendendo com projetos open source @ RubyConf 2015
Aprendendo com projetos open source @ RubyConf 2015
 
Rails front-end com bourbon e sua familia @ Front in Maceió 2014
Rails front-end com bourbon e sua familia @ Front in Maceió 2014Rails front-end com bourbon e sua familia @ Front in Maceió 2014
Rails front-end com bourbon e sua familia @ Front in Maceió 2014
 
RSpec Best Friends @ Rupy Natal 2014
RSpec Best Friends @ Rupy Natal 2014RSpec Best Friends @ Rupy Natal 2014
RSpec Best Friends @ Rupy Natal 2014
 
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
Testes automatizados o time e o cliente saem ganhando! @ Agile Vale 2014
 
O cliente e o time juntos por um só objetivo! @ CONADEV 2014
O cliente e o time juntos por um só objetivo! @ CONADEV 2014O cliente e o time juntos por um só objetivo! @ CONADEV 2014
O cliente e o time juntos por um só objetivo! @ CONADEV 2014
 
RSpec Best Friends @ TDC São Paulo 2014
RSpec Best Friends @ TDC São Paulo 2014RSpec Best Friends @ TDC São Paulo 2014
RSpec Best Friends @ TDC São Paulo 2014
 
RSpec Best Friends @ TDC Florianópolis 2014
RSpec Best Friends @ TDC Florianópolis 2014RSpec Best Friends @ TDC Florianópolis 2014
RSpec Best Friends @ TDC Florianópolis 2014
 
Model of the colossus @ Rupy Brazil 2013
Model of the colossus @ Rupy Brazil 2013 Model of the colossus @ Rupy Brazil 2013
Model of the colossus @ Rupy Brazil 2013
 
Model of the colossus @ Café com Dev
Model of the colossus @ Café com DevModel of the colossus @ Café com Dev
Model of the colossus @ Café com Dev
 

Git para iniciantes v1.3.0 @ PHP Conference Brasil 2012

  • 1. Git para iniciantes sábado, 15 de dezembro de 2012
  • 2. Git para iniciantes 1.3.0 sábado, 15 de dezembro de 2012
  • 3. Mauro... quem? sábado, 15 de dezembro de 2012
  • 4. Mauro... quem? sábado, 15 de dezembro de 2012
  • 5. Mauro... quem? sábado, 15 de dezembro de 2012
  • 6. sábado, 15 de dezembro de 2012
  • 7. sábado, 15 de dezembro de 2012
  • 8. Mauro George http://maurogeorge.github.com http://www.aprenderphp.com.br @maurogeorge sábado, 15 de dezembro de 2012
  • 9. Sistemas de controle de versão VCS (Version control systems) sábado, 15 de dezembro de 2012
  • 10. Pra que? sábado, 15 de dezembro de 2012
  • 11. Pra que? Gerenciar diferentes versões de um arquivo sábado, 15 de dezembro de 2012
  • 12. Pra que? Guardar histórico de alterações de um arquivo sábado, 15 de dezembro de 2012
  • 13. Pra que? Saber quem fez e o porquê de cada alteração sábado, 15 de dezembro de 2012
  • 14. Vantagens sábado, 15 de dezembro de 2012
  • 15. Vantagens Backup automático sábado, 15 de dezembro de 2012
  • 16. Vantagens Controle do histórico sábado, 15 de dezembro de 2012
  • 17. Vantagens Trabalho em equipe sábado, 15 de dezembro de 2012
  • 18. Vantagens Marcação e resgate de versões estáveis sábado, 15 de dezembro de 2012
  • 19. Vantagens Ramificação do projeto sábado, 15 de dezembro de 2012
  • 20. Diferentes modelos sábado, 15 de dezembro de 2012
  • 21. Centralizado sábado, 15 de dezembro de 2012
  • 22. Centralizado Necessita de um servidor central sábado, 15 de dezembro de 2012
  • 23. Centralizado O checkout é uma cópia da estrutura dos arquivos do repositório sábado, 15 de dezembro de 2012
  • 24. Centralizado Somente usuários autorizados podem fazer commits sábado, 15 de dezembro de 2012
  • 25. Centralizado sábado, 15 de dezembro de 2012
  • 26. Distribuído sábado, 15 de dezembro de 2012
  • 27. Distribuído Cada cópia é um repositório com o histórico completo sábado, 15 de dezembro de 2012
  • 28. Distribuído Não necessita de acesso a rede ou um servidor central sábado, 15 de dezembro de 2012
  • 29. Distribuído Commits podem ser feitos offline sábado, 15 de dezembro de 2012
  • 30. Distribuído Commits podem ser facilmente transferidos entre repositórios sábado, 15 de dezembro de 2012
  • 31. Distribuído sábado, 15 de dezembro de 2012
  • 32. Distribuído sábado, 15 de dezembro de 2012
  • 33. Pesquisa sábado, 15 de dezembro de 2012
  • 34. Pesquisa Utiliza: Nenhum Subversion Mercurial Git Outro sábado, 15 de dezembro de 2012
  • 35. Git sábado, 15 de dezembro de 2012
  • 36. Git Open source sábado, 15 de dezembro de 2012
  • 37. Git Desenvolvido originalmente por Linus Torvalds, com o objetivo de... sábado, 15 de dezembro de 2012
  • 38. Git .. manter o Kernel do Linux sábado, 15 de dezembro de 2012
  • 39. Git “focado em velocidade, efetividade e usabilidade do mundo real em grandes projetos” sábado, 15 de dezembro de 2012
  • 40. Instalação sábado, 15 de dezembro de 2012
  • 41. Instalação Mac DMG http://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
  • 42. Instalação Linux apt-get $ sudo apt-get install git-core git-gui git-doc sábado, 15 de dezembro de 2012
  • 43. Instalação Windows msysgit http://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
  • 44. GUIs sábado, 15 de dezembro de 2012
  • 45. GUIs Gitk para todas as plataformas sábado, 15 de dezembro de 2012
  • 46. GUIs GitX (L) para Mac http://gitx.laullon.com/ *GitX -> Enable Terminal Usage sábado, 15 de dezembro de 2012
  • 47. GUIs Gitg para Linux Gerenciador de pacotes sábado, 15 de dezembro de 2012
  • 48. GUIs tortoisegit para Windows http://code.google.com/p/tortoisegit/ sábado, 15 de dezembro de 2012
  • 49. Primeiros passos sábado, 15 de dezembro de 2012
  • 50. Primeiros passos Configuração $ git config --global user.name "Mauro George" $ git config --global user.email "maurogot@gmail.com" sábado, 15 de dezembro de 2012
  • 51. Primeiros passos Criando nosso projeto $ mkdir project $ cd project $ touch hello_world.php sábado, 15 de dezembro de 2012
  • 52. Primeiros passos Criando um repositório $ git init sábado, 15 de dezembro de 2012
  • 53. 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
  • 54. Primeiros passos Primeiro commit $ git add . $ git commit -m "first commit" sábado, 15 de dezembro de 2012
  • 55. 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
  • 56. Primeiros passos Primeiro commit $ git status sábado, 15 de dezembro de 2012
  • 57. Primeiros passos Primeiro commit $ git status Output: # On branch master nothing to commit (working directory clean) sábado, 15 de dezembro de 2012
  • 58. Fluxo básico sábado, 15 de dezembro de 2012
  • 59. Fluxo básico Estado dos arquivos Untracked Modified Staged Commited sábado, 15 de dezembro de 2012
  • 60. Fluxo básico Estado dos arquivos Untracked Arquivos que o git não conhece sábado, 15 de dezembro de 2012
  • 61. Fluxo básico Estado dos arquivos Untracked $ touch Readme $ git status sábado, 15 de dezembro de 2012
  • 62. 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) # # Readme nothing added to commit but untracked files present (use "git add" to track) sábado, 15 de dezembro de 2012
  • 63. Fluxo básico Estado dos arquivos Modified Arquivos que o git já conhece e que foram alterados sábado, 15 de dezembro de 2012
  • 64. Fluxo básico Estado dos arquivos Modified $ vim hello_world.php <?php echo 'Hello world'; ?> sábado, 15 de dezembro de 2012
  • 65. Fluxo básico Estado dos arquivos Modified $ git status sábado, 15 de dezembro de 2012
  • 66. 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) # # Readme no changes added to commit (use "git add" and/or "git commit -a") sábado, 15 de dezembro de 2012
  • 67. Fluxo básico Estado dos arquivos Staged Arquivos que serão enviados para o repositório sábado, 15 de dezembro de 2012
  • 68. Fluxo básico Estado dos arquivos Staged $ git add hello_world.php $ git status sábado, 15 de dezembro de 2012
  • 69. 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
  • 70. Fluxo básico Estado dos arquivos Commited Arquivos que já estão no repositório git sábado, 15 de dezembro de 2012
  • 71. Fluxo básico Estado dos arquivos Commited $ git commit -m "showing hello world" sábado, 15 de dezembro de 2012
  • 72. 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
  • 73. Fluxo básico Estado dos arquivos Commited $ git status sábado, 15 de dezembro de 2012
  • 74. 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) # # Readme nothing added to commit but untracked files present (use "git add" to track) sábado, 15 de dezembro de 2012
  • 75. Dica Colorindo o output $ git config --global color.ui true sábado, 15 de dezembro de 2012
  • 76. 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 git commit -m “mensagem do Fazer o commit das mudanças commit” sábado, 15 de dezembro de 2012
  • 77. 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
  • 78. Comandos sábado, 15 de dezembro de 2012
  • 79. Comandos git diff Visualiza o que foi modificado sábado, 15 de dezembro de 2012
  • 80. Comandos git diff $ vim hello_world.php <?php echo ‘Hello world, na PHP Conference Brasil 2012’; ?> sábado, 15 de dezembro de 2012
  • 81. Comandos git diff $ git diff sábado, 15 de dezembro de 2012
  • 82. Comandos git diff $ git diff Output: diff --git a/hello_world.php b/hello_world.php index 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
  • 83. Comandos git diff --word-diff Visualiza o que foi modificado, diferenciando por palavras sábado, 15 de dezembro de 2012
  • 84. Comandos git diff --word-diff $ git diff --word-diff sábado, 15 de dezembro de 2012
  • 85. Comandos git diff --word-diff $ git diff --word-diff Output: diff --git a/hello_world.php b/hello_world.php index 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
  • 86. Comandos git diff --cached Visualiza o que foi modificado e está staged sábado, 15 de dezembro de 2012
  • 87. Comandos git diff --cached $ git add hello_world.php $ git status sábado, 15 de dezembro de 2012
  • 88. 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
  • 89. Comandos git diff --cached $ git diff sábado, 15 de dezembro de 2012
  • 90. Comandos git diff --cached $ git diff Output: sábado, 15 de dezembro de 2012
  • 91. Comandos git diff --cached $ git diff --cached sábado, 15 de dezembro de 2012
  • 92. Comandos git diff --cached $ git diff --cached Output: diff --git a/hello_world.php b/hello_world.php index 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
  • 93. Comandos Commitando nossas alterações para continuarmos... $ git commit -m "change hello world message" sábado, 15 de dezembro de 2012
  • 94. Comandos git commit -am Envia de modified para commited diretamente sábado, 15 de dezembro de 2012
  • 95. 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
  • 96. Comandos git commit -am $ git status sábado, 15 de dezembro de 2012
  • 97. 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) # # Readme no changes added to commit (use "git add" and/or "git commit -a") sábado, 15 de dezembro de 2012
  • 98. Comandos git commit -am $ git commit -am "added date on hello world" sábado, 15 de dezembro de 2012
  • 99. 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
  • 100. Comandos git commit -am $ git status sábado, 15 de dezembro de 2012
  • 101. Comandos git commit -am $ git status Output: # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # Readme nothing added to commit but untracked files present (use "git add" to track) sábado, 15 de dezembro de 2012
  • 102. Dica Se o git não conhece ele não mexe sábado, 15 de dezembro de 2012
  • 103. 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
  • 104. Comandos git log Exibe o histórico com infomações dos commits sábado, 15 de dezembro de 2012
  • 105. Comandos git log $ git log sábado, 15 de dezembro de 2012
  • 106. Comandos git log $ git log Output: commit a6aa0cb4d832a3a7c3a26001d89d8698e73790bb Author: Mauro George <maurogot@gmail.com> Date: Fri Jan 20 15:59:33 2012 -0200 added readme commit 518bad17f1bc064f4d542683925ae9f1003609bd Author: Mauro George <maurogot@gmail.com> Date: Fri Jan 20 15:27:07 2012 -0200 added date on hello world sábado, 15 de dezembro de 2012
  • 107. Comandos git log --oneline Exibe o log em apenas uma linha sábado, 15 de dezembro de 2012
  • 108. Comandos git log --oneline $ git log --oneline sábado, 15 de dezembro de 2012
  • 109. Comandos git log --oneline $ git log --oneline Output: 53bc92d Revert "added date on hello world" a6aa0cb added readme 518bad1 added date on hello world 0e1b665 change hello world message 83d672c showing hello world bf3bd62 first commit sábado, 15 de dezembro de 2012
  • 110. Voltando no tempo sábado, 15 de dezembro de 2012
  • 111. Voltando no tempo git checkout <hash> Volta para o commit informado em <hash> sábado, 15 de dezembro de 2012
  • 112. Voltando no tempo git checkout <hash> $ git checkout bf3bd62 sábado, 15 de dezembro de 2012
  • 113. Voltando no tempo git checkout <hash> Hash do primeiro commit $ git checkout bf3bd62 sábado, 15 de dezembro de 2012
  • 114. Voltando no tempo git checkout <hash> Hash do primeiro commit $ git checkout bf3bd62 Output: Note: checking out 'bf3bd62'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do 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
  • 115. Voltando no tempo git checkout <hash> $ ls hello_world.php $ cat hello_world.php sábado, 15 de dezembro de 2012
  • 116. Voltando no tempo git checkout <hash> De volta para o futuro $ git checkout master sábado, 15 de dezembro de 2012
  • 117. Voltando no tempo git checkout <hash> De volta para o futuro $ git checkout master Output: Previous HEAD position was bf3bd62... first commit Switched to branch 'master' sábado, 15 de dezembro de 2012
  • 118. Voltando no tempo git checkout <hash> De volta para o futuro $ ls Readme 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
  • 119. Voltando no tempo git revert <hash> Reverte um commit criando um novo sábado, 15 de dezembro de 2012
  • 120. Voltando no tempo git revert <hash> $ git revert 518bad1 sábado, 15 de dezembro de 2012
  • 121. Voltando no tempo Hash do git revert <hash> quarto commit. $ git revert 518bad1 Em que foi adicionada a data sábado, 15 de dezembro de 2012
  • 122. Voltando no tempo Hash do git revert <hash> quarto commit. $ git revert 518bad1 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
  • 123. Voltando no tempo Hash do git revert <hash> quarto commit. $ git revert 518bad1 Em que foi adicionada a data * Será solicitado para digitar uma mensagem do commit, mantenha a padrão por convenção Output: [master 53bc92d] Revert "added date on hello world" 1 files changed, 1 insertions(+), 1 deletions(-) sábado, 15 de dezembro de 2012
  • 124. Voltando no tempo git revert <hash> $ cat hello_world.php <?php echo ‘Hello world, na PHP Conference Brasil 2012’; ?> sábado, 15 de dezembro de 2012
  • 125. Dica Commits pequenos e constantes Boa mensagem de commit Created model of User Má mensagem de commit Created model of User, Post and Comments and added template files sábado, 15 de dezembro de 2012
  • 126. Voltando no tempo git checkout <hash> <arquivo> Recupera o arquivo do commit informado sábado, 15 de dezembro de 2012
  • 127. Voltando no tempo git checkout <hash> <arquivo> $ git checkout 83d672c hello_world.php sábado, 15 de dezembro de 2012
  • 128. 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
  • 129. Voltando no tempo git checkout <hash> <arquivo> $ git status sábado, 15 de dezembro de 2012
  • 130. 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
  • 131. Voltando no tempo git checkout <hash> <arquivo> $ git diff --cached sábado, 15 de dezembro de 2012
  • 132. Voltando no tempo git checkout <hash> <arquivo> $ git diff --cached Output: diff --git a/hello_world.php b/hello_world.php index 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
  • 133. Voltando no tempo git checkout . Recupera todos os arquivos sobreescrevendo as mudanças locais sábado, 15 de dezembro de 2012
  • 134. Voltando no tempo git checkout . $ vim hello_world.php $ vim Readme sábado, 15 de dezembro de 2012
  • 135. Voltando no tempo git checkout . $ vim hello_world.php $ vim Readme sábado, 15 de dezembro de 2012
  • 136. Voltando no tempo git checkout . $ git status sábado, 15 de dezembro de 2012
  • 137. 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
  • 138. Voltando no tempo git checkout . $ git checkout . sábado, 15 de dezembro de 2012
  • 139. Voltando no tempo git checkout . $ git status sábado, 15 de dezembro de 2012
  • 140. Voltando no tempo git checkout . $ git status Output: # On branch master nothing to commit (working directory clean) sábado, 15 de dezembro de 2012
  • 141. sábado, 15 de dezembro de 2012
  • 142. Github 23 de janeiro de 2005 vimeo.com/2979844 sábado, 15 de dezembro de 2012
  • 143. Github 19 de janeiro de 2009 vimeo.com/2979844 sábado, 15 de dezembro de 2012
  • 144. Boleto PHP https://github.com/BielSystems/boletophp/ sábado, 15 de dezembro de 2012
  • 145. Boleto PHP https://github.com/BielSystems/boletophp/ sábado, 15 de dezembro de 2012
  • 146. Boleto PHP sábado, 15 de dezembro de 2012
  • 147. Perguntas? sábado, 15 de dezembro de 2012
  • 148. Obrigado! @maurogeorge maurogeorge.github.com sábado, 15 de dezembro de 2012