$30 off During Our Annual Pro Sale. View Details »

Controle de Versões com GIT

Controle de Versões com GIT

Fundamentos sobre a ferramenta de controle de versões distribuída GIT

Gustavo Pantuza

November 29, 2012
Tweet

More Decks by Gustavo Pantuza

Other Decks in Programming

Transcript

  1. Controle de Versões com
    GIT
    Gustavo Pantuza: http://pantuza.com
    II Semana da Computação - Instituto Federal Sudeste de Minas
    29.11.2012

    View Slide

  2. Agenda
    ● Introdução
    ● Arquitetura e Funcionamento
    ● Fluxo de Trabalho
    ● Git Distribuído
    ● Git Hub
    ● Considerações Finais
    ● Referências
    ● Perguntas

    View Slide

  3. Introdução

    View Slide

  4. Introdução
    ● Sistema distribuído de controle de versões
    ● Criado pela comunidade do Kernel do GNU/Linux
    ● Completamente Aberto - código fonte
    ● Escrito em C
    ● Multiplataforma (windows, mac e GNU/Linux)
    ● Vasta Documentação
    ● Fácil utilização
    ● Comunidade Forte

    View Slide

  5. Arquitetura e Funcionamento
    ● Grafo direcionado acíclico

    View Slide

  6. Arquitetura e Funcionamento
    ● Fluxo de operações no repositório local

    View Slide

  7. Arquitetura e Funcionamento
    ● Transição de estados de um arquivo

    View Slide

  8. Arquitetura e Funcionamento
    ● Troca de contexto sem atrito (branches)
    ● Fluxo de trabalho baseado em funcionalidades
    ● Experimentação descartável

    View Slide

  9. Arquitetura e Funcionamento
    ● Referência de commits entre branches

    View Slide

  10. Arquitetura e Funcionamento
    ● Hierarquia de commits

    View Slide

  11. Fluxo de Trabalho
    ● Voltar para uma revisão antiga (checkout, reset)
    ● Esconder modificações (git stash)
    ● Remover arquivos (git rm --cached)
    ● Analisar histórico/log (git log --graph)
    ● Fundir branches (git merge)
    ● Resolvendo conflitos
    ● Personalizando o git (git config e bash completion)

    View Slide

  12. Git Distribuído
    ● Conceito de Sistemas Distribuídos:
    "Um sistema distribuído é aquele no qual os componentes
    localizados em computadores interligados em rede se
    comunicam e coordenam suas ações apenas passando
    mensagens." (COULORIS, 2007, p.15)
    ● COULORIS, GEORGE; DOLLIMORE, JEAN; KINDBERG TIM; Sistemas
    Distribuídos Conceitos e Projeto; tradução João Tortello. 4 ed. Porto
    Alegre.
    Bookman 2007. 792 p. ISBN: 978-85-60031-49-8

    View Slide

  13. Git Distribuído
    ● Repositório Compartilhado

    View Slide

  14. Git Distribuído
    ● Repositório Descentralizado

    View Slide

  15. Git Hub

    View Slide

  16. Git Hub

    View Slide

  17. Git Hub
    ● Rede Social de projetos (públicos e privados)
    ● Controle de contribuidores (forks)
    ● Ferramenta de busca de código
    ● Análise gráfica dos repositórios
    ● Criação de issues (erros, falhas e melhorias)
    ● Notificação de pull requests (contribuições)

    View Slide

  18. Considerações Finais
    ● Facilite seu trabalho com git
    ● git é fácil de aprender
    ● Envolva-se com software livre
    ● Crie um perfil no Git Hub e disponibilize projetos
    ● Contribua para uma sociedade de conhecimento livre
    ● Agrupe-se e crie projetos/produtos
    ● Compartilhe conhecimento

    View Slide

  19. Referências
    ● The Architecture of Open Source Applications - GIT
    ● Git - Documentation
    ● Git for Computer Scientists
    ● Git From The Bottom Up
    ● Pro Git
    ● Git Cheat Sheet

    View Slide

  20. Perguntas
    http://github.com/pantuza
    http://twitter.
    com/gpantuza
    [email protected]

    View Slide

  21. Perguntas
    http://github.com/pantuza
    http://twitter.com/gpantuza
    [email protected]
    Obrigado : )

    View Slide