Git
Sistema de Controle de Versão
VCS
 Version Control System



        SCM
Source Code Management
Em síntese, é um software que gerencia
    múltiplas versões de arquivos.
●   Salva alterações de arquivos de texto.
●   Gerencia versão do software em si.
●   Auxilia trabalho em equipe.
●   Permite resgatar versões anteriores e,
    eventualmente, ramificar o projeto.
Repositório




Cópia local                 Cópia local




              Cópia local
Repositório




Commit                 Update




         Cópia local
Projeto finalizado


One bourbon, one scotch, one beer



Bo bo bo bo bo bo bo bad



Alley is the roughest place I've ever been



Implementação da feature X



Criação do projeto



Primeiro commit
Branches
Repositório "alternativo"
Repositório




              Cópia local
                (trunk)


Cópia local                 Cópia local
(branch 1)                  (branch 2)
Tags
Permite etiquetar algum nó
Projeto finalizado


   Thorogood        One bourbon, one scotch, one beer



                    Bo bo bo bo bo bo bo bad



Stevie Ray Vaughn   Alley is the roughest place I've ever been



                    Implementação do sistema de mú



                    Criação do projeto



                    Primeiro commit
CVS & SVN
Git
Sistema de Controle de Versão Distribuído
Repositório




Repositório                 Repositório
Commits locais
Mudança de Fluxo
        Antes                  Agora

1. Desenvolve feature   1. Desenvolve feature
2. Faz update           2. Comita alteração
3. Comita alteração        local
                        3. Atualiza: pull
                        4. Envia commits:
                           push
Branches
mais eficientes
Na prática
$ git init .
criando um repositório
$ git add teste.txt
adicionando arquivos para serem comitados
$ git commit -m "primeiro commit"
        comitando alterações
$ git clone /caminho/para/o/repositorio
        clonando um repositório
$ git push origin master
enviando commits para o branch master no
            repositório origin
$ git pull origin master
recebendo commits do o branch master no
           repositório origin
Clientes
●   Plugin para Eclipse: EGit
●   Windows: Tortoise Git
●   Mac: SourceTree ou GitX
●   Para os fortes: modo texto m/
Boas práticas
porque não basta só usar a ferramenta
Commits conscientes
● Comitar sempre que
  ○ terminar uma feature ou
  ○ corrigir um bug.
● Incluir somente os arquivos certos daquela
  alteração.
● Comentários de commits claros e concisos,
  seguindo padrões definidos para o projeto.
● Jamais comitar algo que não está testado ou
  que não está terminado.
Comunicação
entre a equipe é essencial para evitar
              conflitos
Usar tags
para definir versões do projeto
Extras
● Pro Git
  http://git-scm.com/book/
● Magia Git
  http://www.slideshare.net/slide_user/magia-git
● VideoCast Começando com Git
  http://vimeo.com/43683141
● Git Docs
  http://git-scm.com/documentation
● Git Immersion
  http://gitimmersion.com/
● Easy Version Control with Git
  http://net.tutsplus.com/tutorials/other/easy-version-control-with-git/
● Git From the Bottom Up
  http://ftp.newartisans.com/pub/git.from.bottom.up.pdf

Git Básico

  • 1.
  • 2.
    VCS Version ControlSystem SCM Source Code Management
  • 3.
    Em síntese, éum software que gerencia múltiplas versões de arquivos.
  • 4.
    Salva alterações de arquivos de texto. ● Gerencia versão do software em si. ● Auxilia trabalho em equipe. ● Permite resgatar versões anteriores e, eventualmente, ramificar o projeto.
  • 5.
    Repositório Cópia local Cópia local Cópia local
  • 6.
    Repositório Commit Update Cópia local
  • 7.
    Projeto finalizado One bourbon,one scotch, one beer Bo bo bo bo bo bo bo bad Alley is the roughest place I've ever been Implementação da feature X Criação do projeto Primeiro commit
  • 8.
  • 9.
    Repositório Cópia local (trunk) Cópia local Cópia local (branch 1) (branch 2)
  • 10.
  • 11.
    Projeto finalizado Thorogood One bourbon, one scotch, one beer Bo bo bo bo bo bo bo bad Stevie Ray Vaughn Alley is the roughest place I've ever been Implementação do sistema de mú Criação do projeto Primeiro commit
  • 12.
  • 13.
    Git Sistema de Controlede Versão Distribuído
  • 15.
  • 16.
  • 17.
    Mudança de Fluxo Antes Agora 1. Desenvolve feature 1. Desenvolve feature 2. Faz update 2. Comita alteração 3. Comita alteração local 3. Atualiza: pull 4. Envia commits: push
  • 18.
  • 20.
  • 21.
    $ git init. criando um repositório
  • 22.
    $ git addteste.txt adicionando arquivos para serem comitados
  • 23.
    $ git commit-m "primeiro commit" comitando alterações
  • 24.
    $ git clone/caminho/para/o/repositorio clonando um repositório
  • 25.
    $ git pushorigin master enviando commits para o branch master no repositório origin
  • 26.
    $ git pullorigin master recebendo commits do o branch master no repositório origin
  • 27.
    Clientes ● Plugin para Eclipse: EGit ● Windows: Tortoise Git ● Mac: SourceTree ou GitX ● Para os fortes: modo texto m/
  • 28.
    Boas práticas porque nãobasta só usar a ferramenta
  • 29.
    Commits conscientes ● Comitarsempre que ○ terminar uma feature ou ○ corrigir um bug. ● Incluir somente os arquivos certos daquela alteração. ● Comentários de commits claros e concisos, seguindo padrões definidos para o projeto. ● Jamais comitar algo que não está testado ou que não está terminado.
  • 30.
    Comunicação entre a equipeé essencial para evitar conflitos
  • 31.
    Usar tags para definirversões do projeto
  • 32.
  • 33.
    ● Pro Git http://git-scm.com/book/ ● Magia Git http://www.slideshare.net/slide_user/magia-git ● VideoCast Começando com Git http://vimeo.com/43683141 ● Git Docs http://git-scm.com/documentation ● Git Immersion http://gitimmersion.com/ ● Easy Version Control with Git http://net.tutsplus.com/tutorials/other/easy-version-control-with-git/ ● Git From the Bottom Up http://ftp.newartisans.com/pub/git.from.bottom.up.pdf