SlideShare uma empresa Scribd logo
1 de 25
Controle de Versão
    Usando o GIT
Por Alexandre Rocha Lima e Marcondes
Objetivos da Apresentação




5/15/2012   Alexandre Rocha Lima e Marcondes
O que é Controle de Versão ?
                              • É um software que permite controlar e
      O que é ?                 guardar diferentes versões de um mesmo
                                arquivo


        Para que              • Para facilitar o desenvolvimento de
                                software em equipes dispersas
         usar ?               • Para controlar versões do código fonte


            Como              • Instalar o servidor e os clientes
                              • Editar localmente os arquivos
            usar ?            • Enviar as alterações para o repositório


5/15/2012      Alexandre Rocha Lima e Marcondes
O que é um repositório ?
                              • É como um banco de dados especializado
       O que é ?                em guardar arquivos e suas diferentes
                                versões



       Como                   • O GIT cria uma árvore que contem a
                                estrutura dos arquivos e pastas
     funciona ?                 versionados



            Onde              • O GIT é distribuído
                              • Tem repositórios em todas as máquinas
            fica ?              de desenvolvimento e no servidor central


5/15/2012      Alexandre Rocha Lima e Marcondes
História

     Criado em
     3 de Abril                                Motivação
                                                           O uso do Bitkeeper como
      de 2005                                              servidor de controle de
                    Linus Torvalds (o mesmo                versões distribuído com
                    criador do Linux)                      licença gratuita para os
                                                           desenvolvedores do kernel
                                                           do Linux foi revogado



                                                           Linus Torvalds decidiu
                                                           fazer ele mesmo o
                                                           dele, pois os outros não
                                                           tinham os recursos que ele
                                                           queria




5/15/2012         Alexandre Rocha Lima e Marcondes
2005


                                                                         Alcançou a
                                                         Merge de        performance
                                                         múltiplos       desejada
                                          Self-hosting   branches        • 29 de Abril

                                          • 7 de Abril   • 18 de Abril

                           Anúncio
                           • 6 de Abril


            Criação
            • 3 de Abril




5/15/2012         Alexandre Rocha Lima e Marcondes
Critérios
            Linus Torvals buscou critérios de
                    implementação
   Aprender com o                       Suportar um      Ter proteções
                        Não seguir a
     CVS e fazer                          workflow       fortes contra       Ter uma
                        linha do SVN
      sempre o                           distribuído     corrupção de      performance
                         (“CVS done
   oposto em caso                          como o       dados, acidental    muito alta
                            right”)
      de dúvida                          Bitkeeper        ou maliciosa



                                            Não foi
                                       projetado como
                                        um clone, mas
                                         inspirado no
                                           Bitkeeper



5/15/2012           Alexandre Rocha Lima e Marcondes
Instalação
  • Windows
        – Putty
        – MsysGIT
        – TortoiseGIT 32 Bits e 64 Bits
  • Linux
        – $ apt-get install git ssh openssh




5/15/2012       Alexandre Rocha Lima e Marcondes
Os Menus
                                                   Envia para o
                                     Pega do        repositório
                                   repositório        remoto
                                     remoto
                                                     Lista as
            O mesmo               Verifica todas   alterações
                que                 alterações        locais
            pull + push            em arquivos
                                                    Une duas
                                     Troca a         versões
                                  árvore usada      diferentes

                                                     Coloca
                                    Cria uma       arquivos no
                                   etiqueta de        Index
                                      versão

                   Envia para o
                    repositório
                       local


5/15/2012   Alexandre Rocha Lima e Marcondes
Transporte de dados no GIT




5/15/2012   Alexandre Rocha Lima e Marcondes
Conceito
                                                                                  push
                   add              commit                  push
                                                                                 release


                                             Repositório           Repositório
    Alterações             Index                                                           Distribuição
                                                Local               Remoto




    Edições e           Comando:           Comando:             Comando:               Comando:
    gravações            git add             git commit            git push                git push
    diretamente          Melhorias          Empacote             Compartilhe            release
    nos arquivos         em relação à        cada versão           o seu trabalho          Versão
    Grave com           versão              coerente              com a equipe            final que
    freqüência,          anterior            Faça testes          pelo menos              pode ser
    pois a               Adicone            simples para          uma vez a cada          entregue
    máquina              cada                garantir a            dois dias               diretamente
    pode dar             alteração           integridade                                   ao cliente
    problemas            mais arrojada


5/15/2012          Alexandre Rocha Lima e Marcondes
Conceito
                                                                                                  push
                                     add             commit                 push
                                                                                                 release


                                                              Repositório          Repositório
           Alterações                       Index                                                          Distribuição
                                                                 Local              Remoto
   Privado Desenvolvimento Volátil




                                                                                                                    Cliente
                                                                                                                    Produção
                                                                                                                    Estável
5/15/2012                            Alexandre Rocha Lima e Marcondes
Dia-a-dia com o GIT




       Edição de
       arquivos e                                       Envio do Index
       adição no                                            para o
         Index                                         repositório local
                                                        com o commit
                Sincronismo
               com Synch ou
                   um pull
              seguido de um
                    push


5/15/2012           Alexandre Rocha Lima e Marcondes
O Index




5/15/2012   Alexandre Rocha Lima e Marcondes
O Index

                                               Os arquivos
                                                marcados
                                                    são
                                               adicionados
                                                 ao Index
                                                   pelo
                                               TortoiseGIT
                                                quando se
                                                  faz um
                                                 commit




5/15/2012   Alexandre Rocha Lima e Marcondes
O Repositório Local




5/15/2012   Alexandre Rocha Lima e Marcondes
Comentários em Commits




5/15/2012   Alexandre Rocha Lima e Marcondes
Comentando BUGs

            BUG-1234 : Correção na comunicação serial

            * Limpeza de arquivos e identação melhorada




5/15/2012   Alexandre Rocha Lima e Marcondes
Comentando Novos Recursos

            FEATURE-1234 : Comunicação com dispositivo XYZ

            * Separação da estrutura de comunicação em funções diferentes
            * Envio de dados na serial com checksum inteligente
            * Troca de nome das funções internas




5/15/2012   Alexandre Rocha Lima e Marcondes
Comentando Código que não Compila

              BROKEN : Preparação para inclusão da funcionalidade FEATURE-1234

              * Funções de suporte
              * Refactoring da parte de leitura de arquivo
              * Teste de comunicação




5/15/2012     Alexandre Rocha Lima e Marcondes
Comentando Alterações na Versão

              DLL 2.27.02

              BUG-123 , BUG-345 , BUG-1234
              FEATURE-1234 , FEATURE-234 , FEATURE 456




5/15/2012     Alexandre Rocha Lima e Marcondes
O Log de Alterações




                                               O comentário do commit
                                                  é importantíssimo !

                                                Não se esqueça dele
                                               pois ele aparece no Log




5/15/2012   Alexandre Rocha Lima e Marcondes
Blame – Quem mudou o que ?




                                               Configure seu nome
                                                 no menu Settings
                                               para ter propriedade
                                                de parte do código




5/15/2012   Alexandre Rocha Lima e Marcondes
Comparação Entre Versões




                      Versões são
                   numeradas por um
                      Hash SHA1




5/15/2012   Alexandre Rocha Lima e Marcondes
Resumo
   Use o Index a seu favor (com um add), ele pode guardar estados intermediários


   Guarde diariamente seu trabalho no repositório local com um commit


   Sempre comente seus commits de forma adequada


   Teste bem seu trabalho antes de fazer um push


   Identifique os commits quebrados com BROKEN

   Envie seu trabalho freqüentemente, mas sempre faça pull antes para integrar
   seu trabalho com possíveis alterações de outros colaboradores


5/15/2012       Alexandre Rocha Lima e Marcondes

Mais conteúdo relacionado

Destaque

Queroseusorriso
QueroseusorrisoQueroseusorriso
Queroseusorrisoillumin4d4
 
Palestra Internet Produtiva
Palestra Internet ProdutivaPalestra Internet Produtiva
Palestra Internet ProdutivaPaulo Milreu
 
Ensino de Idiomas, formação e identidade docente
Ensino de Idiomas, formação e identidade docente Ensino de Idiomas, formação e identidade docente
Ensino de Idiomas, formação e identidade docente Vera Menezes
 
6ªSessão (1ª tarefa)
6ªSessão (1ª tarefa)6ªSessão (1ª tarefa)
6ªSessão (1ª tarefa)marta.medeiro
 
Mídias Sociais: estratégias e práticas organizacionais
Mídias Sociais: estratégias e práticas organizacionaisMídias Sociais: estratégias e práticas organizacionais
Mídias Sociais: estratégias e práticas organizacionaisPaulo Milreu
 
Pico tudo - como criamos tanto confusao
Pico tudo - como criamos tanto confusaoPico tudo - como criamos tanto confusao
Pico tudo - como criamos tanto confusaoUniGaia-Brasil
 
Vida E Morte Sentimento
Vida E Morte SentimentoVida E Morte Sentimento
Vida E Morte SentimentoCyberquel
 
Atividadefisicanaterceiraidade
AtividadefisicanaterceiraidadeAtividadefisicanaterceiraidade
AtividadefisicanaterceiraidadeIsabel Teixeira
 
Reconocimiento del ambiente de trabajo de excel vane 2
Reconocimiento del ambiente de trabajo de excel vane 2Reconocimiento del ambiente de trabajo de excel vane 2
Reconocimiento del ambiente de trabajo de excel vane 2VaneLopez93
 
Programacao Com Asp Ii
Programacao Com Asp   IiProgramacao Com Asp   Ii
Programacao Com Asp Iiguest3118b2
 
Violência doméstica
Violência domésticaViolência doméstica
Violência domésticamartasara
 
Kim Earwood Resume1
Kim Earwood Resume1Kim Earwood Resume1
Kim Earwood Resume1Kim Earwood
 

Destaque (20)

Queroseusorriso
QueroseusorrisoQueroseusorriso
Queroseusorriso
 
icetable
icetableicetable
icetable
 
Palestra Internet Produtiva
Palestra Internet ProdutivaPalestra Internet Produtiva
Palestra Internet Produtiva
 
Ensino de Idiomas, formação e identidade docente
Ensino de Idiomas, formação e identidade docente Ensino de Idiomas, formação e identidade docente
Ensino de Idiomas, formação e identidade docente
 
6ªSessão (1ª tarefa)
6ªSessão (1ª tarefa)6ªSessão (1ª tarefa)
6ªSessão (1ª tarefa)
 
Mídias Sociais: estratégias e práticas organizacionais
Mídias Sociais: estratégias e práticas organizacionaisMídias Sociais: estratégias e práticas organizacionais
Mídias Sociais: estratégias e práticas organizacionais
 
Pico tudo - como criamos tanto confusao
Pico tudo - como criamos tanto confusaoPico tudo - como criamos tanto confusao
Pico tudo - como criamos tanto confusao
 
Sistema lo acepto
Sistema lo aceptoSistema lo acepto
Sistema lo acepto
 
Vida E Morte Sentimento
Vida E Morte SentimentoVida E Morte Sentimento
Vida E Morte Sentimento
 
21 insulina glargina_en_el_tratamiento
21 insulina glargina_en_el_tratamiento21 insulina glargina_en_el_tratamiento
21 insulina glargina_en_el_tratamiento
 
Atividadefisicanaterceiraidade
AtividadefisicanaterceiraidadeAtividadefisicanaterceiraidade
Atividadefisicanaterceiraidade
 
Felicidades
FelicidadesFelicidades
Felicidades
 
Reconocimiento del ambiente de trabajo de excel vane 2
Reconocimiento del ambiente de trabajo de excel vane 2Reconocimiento del ambiente de trabajo de excel vane 2
Reconocimiento del ambiente de trabajo de excel vane 2
 
Programacao Com Asp Ii
Programacao Com Asp   IiProgramacao Com Asp   Ii
Programacao Com Asp Ii
 
New Resume 2016
New Resume 2016New Resume 2016
New Resume 2016
 
Obama Presidente
Obama PresidenteObama Presidente
Obama Presidente
 
Cantores brasileiros
Cantores brasileirosCantores brasileiros
Cantores brasileiros
 
Pano360 Presentation
Pano360 PresentationPano360 Presentation
Pano360 Presentation
 
Violência doméstica
Violência domésticaViolência doméstica
Violência doméstica
 
Kim Earwood Resume1
Kim Earwood Resume1Kim Earwood Resume1
Kim Earwood Resume1
 

Semelhante a Usando GIT para Controle de Versão

Fisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.comFisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.comRobson Chikasawa
 
Sistemas de Controle de Versão
Sistemas de Controle de VersãoSistemas de Controle de Versão
Sistemas de Controle de VersãoJonathas Silva
 
Desenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações WebDesenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações WebNando Sousa
 
Porque todo programador deve utilizar Sistema de Controle de Versão?
Porque todo programador deve utilizar Sistema de Controle de Versão?Porque todo programador deve utilizar Sistema de Controle de Versão?
Porque todo programador deve utilizar Sistema de Controle de Versão?Marco Rosner
 
Git e a importância de versionar um projeto
 Git e a importância de versionar um projeto Git e a importância de versionar um projeto
Git e a importância de versionar um projetoGuilherme Farias
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourcetdc-globalcode
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceGlobalcode
 
Introdução ao Docker - Linux Dev Br 2018
Introdução ao Docker - Linux Dev Br 2018Introdução ao Docker - Linux Dev Br 2018
Introdução ao Docker - Linux Dev Br 2018Fernando Luiz Cola
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker ContainersHugo Henley
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágilClaudia Melo
 
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...Renato Groff
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versãoMarcos Pessoa
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisEmanoel Lopes
 
Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Deploy de aplicações Ruby com Mina - TDC Floripa 2014Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Deploy de aplicações Ruby com Mina - TDC Floripa 2014Ismael Stahelin
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsRafael Salerno de Oliveira
 

Semelhante a Usando GIT para Controle de Versão (20)

Go git - Presentation @Navita
Go git - Presentation @NavitaGo git - Presentation @Navita
Go git - Presentation @Navita
 
Fisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.comFisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.com
 
Sistemas de Controle de Versão
Sistemas de Controle de VersãoSistemas de Controle de Versão
Sistemas de Controle de Versão
 
Desenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações WebDesenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações Web
 
Porque todo programador deve utilizar Sistema de Controle de Versão?
Porque todo programador deve utilizar Sistema de Controle de Versão?Porque todo programador deve utilizar Sistema de Controle de Versão?
Porque todo programador deve utilizar Sistema de Controle de Versão?
 
Git e a importância de versionar um projeto
 Git e a importância de versionar um projeto Git e a importância de versionar um projeto
Git e a importância de versionar um projeto
 
Open4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSourceOpen4Education | MC122 - Introdução a ALM OpenSource
Open4Education | MC122 - Introdução a ALM OpenSource
 
Introdução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open SourceIntrodução a Application Life-cycle Management Open Source
Introdução a Application Life-cycle Management Open Source
 
Introdução ao Docker - Linux Dev Br 2018
Introdução ao Docker - Linux Dev Br 2018Introdução ao Docker - Linux Dev Br 2018
Introdução ao Docker - Linux Dev Br 2018
 
DevOps Exame.com
DevOps Exame.comDevOps Exame.com
DevOps Exame.com
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker Containers
 
Gerência de configuração ágil
Gerência de configuração ágilGerência de configuração ágil
Gerência de configuração ágil
 
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Sistemas de controle de versão
Sistemas de controle de versãoSistemas de controle de versão
Sistemas de controle de versão
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Deploy de aplicações Ruby com Mina - TDC Floripa 2014Deploy de aplicações Ruby com Mina - TDC Floripa 2014
Deploy de aplicações Ruby com Mina - TDC Floripa 2014
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
.Net Core + Docker
.Net Core +  Docker.Net Core +  Docker
.Net Core + Docker
 
Apresentacao git
Apresentacao gitApresentacao git
Apresentacao git
 

Mais de Alexandre Rocha Lima e Marcondes

Uma proposta de gerenciamento de riscos para o empreendedorismo
Uma proposta de gerenciamento de riscos para o empreendedorismoUma proposta de gerenciamento de riscos para o empreendedorismo
Uma proposta de gerenciamento de riscos para o empreendedorismoAlexandre Rocha Lima e Marcondes
 
Análise das metodologias para definição de escopo em Lean Startups
Análise das metodologias para definição de escopo em Lean StartupsAnálise das metodologias para definição de escopo em Lean Startups
Análise das metodologias para definição de escopo em Lean StartupsAlexandre Rocha Lima e Marcondes
 
Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...
Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...
Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...Alexandre Rocha Lima e Marcondes
 
Uma correlação entre Lean Startups e Gerenciamento de Projetos
Uma correlação entre Lean Startups e Gerenciamento de ProjetosUma correlação entre Lean Startups e Gerenciamento de Projetos
Uma correlação entre Lean Startups e Gerenciamento de ProjetosAlexandre Rocha Lima e Marcondes
 
Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...
Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...
Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...Alexandre Rocha Lima e Marcondes
 
Uma proposta de gerenciamento de riscos para o empreendedorismo
Uma proposta de gerenciamento de riscos para o empreendedorismoUma proposta de gerenciamento de riscos para o empreendedorismo
Uma proposta de gerenciamento de riscos para o empreendedorismoAlexandre Rocha Lima e Marcondes
 
Análise das metodologias para definição de escopo em Lean Startups
Análise das metodologias para definição de escopo em Lean StartupsAnálise das metodologias para definição de escopo em Lean Startups
Análise das metodologias para definição de escopo em Lean StartupsAlexandre Rocha Lima e Marcondes
 
Uma correlação entre Lean Startups e Gerenciamento de Projetos
Uma correlação entre Lean Startups e Gerenciamento de ProjetosUma correlação entre Lean Startups e Gerenciamento de Projetos
Uma correlação entre Lean Startups e Gerenciamento de ProjetosAlexandre Rocha Lima e Marcondes
 

Mais de Alexandre Rocha Lima e Marcondes (16)

iOS 8 com swift
iOS 8 com swiftiOS 8 com swift
iOS 8 com swift
 
Android Open Source Project - AOSP
Android Open Source Project  - AOSPAndroid Open Source Project  - AOSP
Android Open Source Project - AOSP
 
Compilando o Android 5 para o Nexus 5
Compilando o Android 5 para o Nexus 5Compilando o Android 5 para o Nexus 5
Compilando o Android 5 para o Nexus 5
 
Palestra Xamarin.Android - GUX
Palestra Xamarin.Android - GUXPalestra Xamarin.Android - GUX
Palestra Xamarin.Android - GUX
 
Neggocio.com.br - Apresentação consultor
Neggocio.com.br - Apresentação consultorNeggocio.com.br - Apresentação consultor
Neggocio.com.br - Apresentação consultor
 
Neggocio.com.br - Apresentação cliente
Neggocio.com.br - Apresentação clienteNeggocio.com.br - Apresentação cliente
Neggocio.com.br - Apresentação cliente
 
Uma proposta de gerenciamento de riscos para o empreendedorismo
Uma proposta de gerenciamento de riscos para o empreendedorismoUma proposta de gerenciamento de riscos para o empreendedorismo
Uma proposta de gerenciamento de riscos para o empreendedorismo
 
Análise das metodologias para definição de escopo em Lean Startups
Análise das metodologias para definição de escopo em Lean StartupsAnálise das metodologias para definição de escopo em Lean Startups
Análise das metodologias para definição de escopo em Lean Startups
 
Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...
Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...
Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...
 
Uma correlação entre Lean Startups e Gerenciamento de Projetos
Uma correlação entre Lean Startups e Gerenciamento de ProjetosUma correlação entre Lean Startups e Gerenciamento de Projetos
Uma correlação entre Lean Startups e Gerenciamento de Projetos
 
Metodologias Ágeis
Metodologias ÁgeisMetodologias Ágeis
Metodologias Ágeis
 
Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...
Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...
Estudos de caso de projetos de empreendedorismo e sugestões de ações futuras ...
 
Uma proposta de gerenciamento de riscos para o empreendedorismo
Uma proposta de gerenciamento de riscos para o empreendedorismoUma proposta de gerenciamento de riscos para o empreendedorismo
Uma proposta de gerenciamento de riscos para o empreendedorismo
 
Análise das metodologias para definição de escopo em Lean Startups
Análise das metodologias para definição de escopo em Lean StartupsAnálise das metodologias para definição de escopo em Lean Startups
Análise das metodologias para definição de escopo em Lean Startups
 
Uma correlação entre Lean Startups e Gerenciamento de Projetos
Uma correlação entre Lean Startups e Gerenciamento de ProjetosUma correlação entre Lean Startups e Gerenciamento de Projetos
Uma correlação entre Lean Startups e Gerenciamento de Projetos
 
AmishConnect
AmishConnectAmishConnect
AmishConnect
 

Usando GIT para Controle de Versão

  • 1. Controle de Versão Usando o GIT Por Alexandre Rocha Lima e Marcondes
  • 2. Objetivos da Apresentação 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 3. O que é Controle de Versão ? • É um software que permite controlar e O que é ? guardar diferentes versões de um mesmo arquivo Para que • Para facilitar o desenvolvimento de software em equipes dispersas usar ? • Para controlar versões do código fonte Como • Instalar o servidor e os clientes • Editar localmente os arquivos usar ? • Enviar as alterações para o repositório 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 4. O que é um repositório ? • É como um banco de dados especializado O que é ? em guardar arquivos e suas diferentes versões Como • O GIT cria uma árvore que contem a estrutura dos arquivos e pastas funciona ? versionados Onde • O GIT é distribuído • Tem repositórios em todas as máquinas fica ? de desenvolvimento e no servidor central 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 5. História Criado em 3 de Abril Motivação O uso do Bitkeeper como de 2005 servidor de controle de Linus Torvalds (o mesmo versões distribuído com criador do Linux) licença gratuita para os desenvolvedores do kernel do Linux foi revogado Linus Torvalds decidiu fazer ele mesmo o dele, pois os outros não tinham os recursos que ele queria 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 6. 2005 Alcançou a Merge de performance múltiplos desejada Self-hosting branches • 29 de Abril • 7 de Abril • 18 de Abril Anúncio • 6 de Abril Criação • 3 de Abril 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 7. Critérios Linus Torvals buscou critérios de implementação Aprender com o Suportar um Ter proteções Não seguir a CVS e fazer workflow fortes contra Ter uma linha do SVN sempre o distribuído corrupção de performance (“CVS done oposto em caso como o dados, acidental muito alta right”) de dúvida Bitkeeper ou maliciosa Não foi projetado como um clone, mas inspirado no Bitkeeper 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 8. Instalação • Windows – Putty – MsysGIT – TortoiseGIT 32 Bits e 64 Bits • Linux – $ apt-get install git ssh openssh 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 9. Os Menus Envia para o Pega do repositório repositório remoto remoto Lista as O mesmo Verifica todas alterações que alterações locais pull + push em arquivos Une duas Troca a versões árvore usada diferentes Coloca Cria uma arquivos no etiqueta de Index versão Envia para o repositório local 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 10. Transporte de dados no GIT 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 11. Conceito push add commit push release Repositório Repositório Alterações Index Distribuição Local Remoto Edições e Comando: Comando: Comando: Comando: gravações git add git commit git push git push diretamente Melhorias Empacote Compartilhe release nos arquivos em relação à cada versão o seu trabalho Versão Grave com versão coerente com a equipe final que freqüência, anterior Faça testes pelo menos pode ser pois a Adicone simples para uma vez a cada entregue máquina cada garantir a dois dias diretamente pode dar alteração integridade ao cliente problemas mais arrojada 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 12. Conceito push add commit push release Repositório Repositório Alterações Index Distribuição Local Remoto Privado Desenvolvimento Volátil Cliente Produção Estável 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 13. Dia-a-dia com o GIT Edição de arquivos e Envio do Index adição no para o Index repositório local com o commit Sincronismo com Synch ou um pull seguido de um push 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 14. O Index 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 15. O Index Os arquivos marcados são adicionados ao Index pelo TortoiseGIT quando se faz um commit 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 16. O Repositório Local 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 17. Comentários em Commits 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 18. Comentando BUGs BUG-1234 : Correção na comunicação serial * Limpeza de arquivos e identação melhorada 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 19. Comentando Novos Recursos FEATURE-1234 : Comunicação com dispositivo XYZ * Separação da estrutura de comunicação em funções diferentes * Envio de dados na serial com checksum inteligente * Troca de nome das funções internas 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 20. Comentando Código que não Compila BROKEN : Preparação para inclusão da funcionalidade FEATURE-1234 * Funções de suporte * Refactoring da parte de leitura de arquivo * Teste de comunicação 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 21. Comentando Alterações na Versão DLL 2.27.02 BUG-123 , BUG-345 , BUG-1234 FEATURE-1234 , FEATURE-234 , FEATURE 456 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 22. O Log de Alterações O comentário do commit é importantíssimo ! Não se esqueça dele pois ele aparece no Log 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 23. Blame – Quem mudou o que ? Configure seu nome no menu Settings para ter propriedade de parte do código 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 24. Comparação Entre Versões Versões são numeradas por um Hash SHA1 5/15/2012 Alexandre Rocha Lima e Marcondes
  • 25. Resumo Use o Index a seu favor (com um add), ele pode guardar estados intermediários Guarde diariamente seu trabalho no repositório local com um commit Sempre comente seus commits de forma adequada Teste bem seu trabalho antes de fazer um push Identifique os commits quebrados com BROKEN Envie seu trabalho freqüentemente, mas sempre faça pull antes para integrar seu trabalho com possíveis alterações de outros colaboradores 5/15/2012 Alexandre Rocha Lima e Marcondes