Visão Geral do Git
 Aplicando Git em ambiente Subversion
Porque Git?
Porque Git?
• Orinalmente foi escrito por Linus Torvalds;
Porque Git?
• Orinalmente foi escrito por Linus Torvalds;
• Usado no código-fonte do Kernel do Linux;
Porque Git?
• Orinalmente foi escrito por Linus Torvalds;
• Usado no código-fonte do Kernel do Linux;
• Trabalha com ambie...
Porque Git?
• Orinalmente foi escrito por Linus Torvalds;
• Usado no código-fonte do Kernel do Linux;
• Trabalha com ambie...
Porque Git?
• Orinalmente foi escrito por Linus Torvalds;
• Usado no código-fonte do Kernel do Linux;
• Trabalha com ambie...
Porque Git?
Porque Git?

• É rápido (logs, history, diff);
Porque Git?

• É rápido (logs, history, diff);
• Mantém seus diretórios limpos;
Porque Git?

• É rápido (logs, history, diff);
• Mantém seus diretórios limpos;
• Funciona por conteúdo e não por arquivos;
Porque Git?

• É rápido (logs, history, diff);
• Mantém seus diretórios limpos;
• Funciona por conteúdo e não por arquivos...
Antes de Começar
Antes de Começar

• Configuração globais (~/.gitconfig)
• Setar informações pessoais: nome, email
• Pode-se configurar alias ...
~/.gitconfig
O Modelo Subversion:
      Centralizado
        Repositório SVN
O Modelo Subversion:
                  Centralizado
                    Repositório SVN




Desenvolvedor 1
O Modelo Subversion:
                  Centralizado
                    Repositório SVN




Desenvolvedor 1

   Revisão: 1
O Modelo Subversion:
                  Centralizado
                       Revisão: 2

                    Repositório SVN...
O Modelo Subversion:
                  Centralizado
                       Revisão: 2

                    Repositório SVN...
O Modelo Subversion:
                  Centralizado
                       Revisão: 2

                    Repositório SVN...
O Modelo Subversion:
                  Centralizado
                       Revisão: 3

                    Repositório SVN...
O Modelo Subversion:
                  Centralizado
                       Revisão: 3

                    Repositório SVN...
O Modelo Subversion:
                  Centralizado
                       Revisão: 3

                    Repositório SVN...
O Modelo Subversion:
                  Centralizado
                       Revisão: 4

                    Repositório SVN...
O Modelo Git:
   Distribuído
     Repositório Git
O Modelo Git:
                  Distribuído
                    Repositório Git




Desenvolvedor 1
O Modelo Git:
                        Distribuído
                    master   Repositório Git




master
  Desenvolvedor 1
O Modelo Git:
                                                     Distribuído
                                           ...
O Modelo Git:
                                                     Distribuído
                                           ...
O Modelo Git:
                                                     Distribuído
                                           ...
O Modelo Git:
                                                     Distribuído
                                           ...
O Modelo Git:
                                                     Distribuído
                                           ...
O Modelo Git:
                                                     Distribuído
                                           ...
O Modelo Git:
                                                     Distribuído
                                           ...
O Modelo Git:
                                                     Distribuído
                                           ...
O Modelo Git:
                                                     Distribuído
                                           ...
O Modelo Git:
                                                     Distribuído
                                           ...
Git Directory
Git Directory
Git Directory



Nós temos apenas um diretório .git!!!
Criando um repositório
       com Git
Clonando repositórios
      com Git
git status
git status
• Arquivos fora do controle de versão:
 •   Novos arquivos
git status
• Arquivos fora do controle de versão:
 •   Novos arquivos

• Arquivos modificados mas não atualizados:
 •   Arq...
git status
• Arquivos fora do controle de versão:
 •   Novos arquivos

• Arquivos modificados mas não atualizados:
 •   Arq...
git status
O Índice
O Índice


• Ponto de partida para seu próximo commit
O Índice


• Ponto de partida para seu próximo commit
• Lista de arquivos semelhantes ao mancados
  como A, M, D na saída ...
Principal diferença

• Após   efetuar qualquer mudança no
 diretório de trabalho e antes de executar
 qualquer commit, voc...
Exemplo
Committing
•   git commit (git ci)


    • Comita o que estiver no índice
•   git commit -a (git ci -a)


    • adiciona o...
Desfazendo Mudanças

$ git checkout PATH   $ svn revert PATH
git revert != svn revert
# mais parecido com svn revert
$ git checkout .




# reverte o commit <rev> e comita o resultado...
Criando branch
Criando branch



        Tudo em apenas um comando!
Merges
Merges
# voltando para o branch master
$ git co master
Merges
# voltando para o branch master
$ git co master


# juntando as mudanças de outro branch
$ git merge {outro-branch}
Merges
# voltando para o branch master
$ git co master


# juntando as mudanças de outro branch
$ git merge {outro-branch}...
Resolvendo conflitos
Resolvendo conflitos
$ git merge {branch-conflitante}
Auto-merged README
CONFLICT (content): Merge conflict in README
Autom...
Resolvendo conflitos
$ git merge {branch-conflitante}
Auto-merged README
CONFLICT (content): Merge conflict in README
Autom...
Resolvendo conflitos
$ git merge {branch-conflitante}
Auto-merged README
CONFLICT (content): Merge conflict in README
Autom...
Resolvendo conflitos
$ git merge {branch-conflitante}
Auto-merged README
CONFLICT (content): Merge conflict in README
Autom...
Resolvendo conflitos
$ git merge {branch-conflitante}
Auto-merged README
CONFLICT (content): Merge conflict in README
Autom...
Curiosidades sobre Git
Curiosidades sobre Git

• Para remover arquivos e diretórios:
          git rm {file-name}
          git rm -rf {file-name}
Curiosidades sobre Git

• Para remover arquivos e diretórios:
          git rm {file-name}
          git rm -rf {file-name}
...
Curiosidades sobre Git
Curiosidades sobre Git


 Se seus diretórios estão vazios, Git
     não está nem aí para eles!
Dúvidas?
Próximos SlideShares
Carregando em…5
×

Git em ambiente Subversion

1.653 visualizações

Publicada em

TechTalk apresentado na Visie, mostrando como o Git funciona para a equipe que está acostumada com Subversion

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.653
No SlideShare
0
A partir de incorporações
0
Número de incorporações
54
Ações
Compartilhamentos
0
Downloads
44
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Git em ambiente Subversion

  1. 1. Visão Geral do Git Aplicando Git em ambiente Subversion
  2. 2. Porque Git?
  3. 3. Porque Git? • Orinalmente foi escrito por Linus Torvalds;
  4. 4. Porque Git? • Orinalmente foi escrito por Linus Torvalds; • Usado no código-fonte do Kernel do Linux;
  5. 5. Porque Git? • Orinalmente foi escrito por Linus Torvalds; • Usado no código-fonte do Kernel do Linux; • Trabalha com ambiente distribuído;
  6. 6. Porque Git? • Orinalmente foi escrito por Linus Torvalds; • Usado no código-fonte do Kernel do Linux; • Trabalha com ambiente distribuído; • Criar branchs e fazer merges são praticamente de graça;
  7. 7. Porque Git? • Orinalmente foi escrito por Linus Torvalds; • Usado no código-fonte do Kernel do Linux; • Trabalha com ambiente distribuído; • Criar branchs e fazer merges são praticamente de graça; • Commits são off-line;
  8. 8. Porque Git?
  9. 9. Porque Git? • É rápido (logs, history, diff);
  10. 10. Porque Git? • É rápido (logs, history, diff); • Mantém seus diretórios limpos;
  11. 11. Porque Git? • É rápido (logs, history, diff); • Mantém seus diretórios limpos; • Funciona por conteúdo e não por arquivos;
  12. 12. Porque Git? • É rápido (logs, history, diff); • Mantém seus diretórios limpos; • Funciona por conteúdo e não por arquivos; • Comunidade ativa!
  13. 13. Antes de Começar
  14. 14. Antes de Começar • Configuração globais (~/.gitconfig) • Setar informações pessoais: nome, email • Pode-se configurar alias para obter comandos iguais ao do Subversion
  15. 15. ~/.gitconfig
  16. 16. O Modelo Subversion: Centralizado Repositório SVN
  17. 17. O Modelo Subversion: Centralizado Repositório SVN Desenvolvedor 1
  18. 18. O Modelo Subversion: Centralizado Repositório SVN Desenvolvedor 1 Revisão: 1
  19. 19. O Modelo Subversion: Centralizado Revisão: 2 Repositório SVN Desenvolvedor 1 Revisão: 2
  20. 20. O Modelo Subversion: Centralizado Revisão: 2 Repositório SVN Desenvolvedor 1 Desenvolvedor 2 Revisão: 2
  21. 21. O Modelo Subversion: Centralizado Revisão: 2 Repositório SVN Desenvolvedor 1 Desenvolvedor 2 Revisão: 2 Revisão: 2
  22. 22. O Modelo Subversion: Centralizado Revisão: 3 Repositório SVN Desenvolvedor 1 Desenvolvedor 2 Revisão: 2 Revisão: 3
  23. 23. O Modelo Subversion: Centralizado Revisão: 3 Repositório SVN Desenvolvedor 1 Desenvolvedor 2 Desenvolvedor 3 Revisão: 2 Revisão: 3
  24. 24. O Modelo Subversion: Centralizado Revisão: 3 Repositório SVN Desenvolvedor 1 Desenvolvedor 2 Desenvolvedor 3 Revisão: 2 Revisão: 3 Revisão: 3
  25. 25. O Modelo Subversion: Centralizado Revisão: 4 Repositório SVN Desenvolvedor 1 Desenvolvedor 2 Desenvolvedor 3 Revisão: 2 Revisão: 3 Revisão: 4
  26. 26. O Modelo Git: Distribuído Repositório Git
  27. 27. O Modelo Git: Distribuído Repositório Git Desenvolvedor 1
  28. 28. O Modelo Git: Distribuído master Repositório Git master Desenvolvedor 1
  29. 29. O Modelo Git: Distribuído commit d25f5d83c193d3f079b0c8ee27ab869da058483b master Repositório Git master Desenvolvedor 1 commit d25f5d83c193d3f079b0c8ee27ab869da058483b
  30. 30. O Modelo Git: Distribuído commit d25f5d83c193d3f079b0c8ee27ab869da058483b master Repositório Git master Desenvolvedor 1 Desenvolvedor 2 commit d25f5d83c193d3f079b0c8ee27ab869da058483b
  31. 31. O Modelo Git: Distribuído commit d25f5d83c193d3f079b0c8ee27ab869da058483b master Repositório Git master master Desenvolvedor 1 Desenvolvedor 2 commit d25f5d83c193d3f079b0c8ee27ab869da058483b commit d25f5d83c193d3f079b0c8ee27ab869da058483b
  32. 32. O Modelo Git: Distribuído commit e823f30f082d3fdecb13f2177736242b80b39e96 master Repositório Git master master Desenvolvedor 1 Desenvolvedor 2 commit d25f5d83c193d3f079b0c8ee27ab869da058483b commit e823f30f082d3fdecb13f2177736242b80b39e96
  33. 33. O Modelo Git: Distribuído commit e823f30f082d3fdecb13f2177736242b80b39e96 master Repositório Git master master Desenvolvedor 1 Desenvolvedor 2 Desenvolvedor 3 commit d25f5d83c193d3f079b0c8ee27ab869da058483b commit e823f30f082d3fdecb13f2177736242b80b39e96
  34. 34. O Modelo Git: Distribuído commit e823f30f082d3fdecb13f2177736242b80b39e96 master Repositório Git master master master Desenvolvedor 1 Desenvolvedor 2 Desenvolvedor 3 commit d25f5d83c193d3f079b0c8ee27ab869da058483b commit e823f30f082d3fdecb13f2177736242b80b39e96 commit e823f30f082d3fdecb13f2177736242b80b39e96
  35. 35. O Modelo Git: Distribuído commit 3ae6894ec28bfa193b952f929364b0cf67a64749 master Repositório Git master master master Desenvolvedor 1 Desenvolvedor 2 Desenvolvedor 3 commit d25f5d83c193d3f079b0c8ee27ab869da058483b commit e823f30f082d3fdecb13f2177736242b80b39e96 commit 3ae6894ec28bfa193b952f929364b0cf67a64749
  36. 36. O Modelo Git: Distribuído commit 3ae6894ec28bfa193b952f929364b0cf67a64749 master Repositório Git master master master Desenvolvedor 1 Desenvolvedor 2 Desenvolvedor 3 commit ef6062e6780ed36ad3057ce7b580c2bbfbb89bbd commit e823f30f082d3fdecb13f2177736242b80b39e96 commit 3ae6894ec28bfa193b952f929364b0cf67a64749
  37. 37. O Modelo Git: Distribuído commit 3ae6894ec28bfa193b952f929364b0cf67a64749 master Repositório Git master master master Desenvolvedor 1 Desenvolvedor 2 Desenvolvedor 3 commit ef6062e6780ed36ad3057ce7b580c2bbfbb89bbd commit e823f30f082d3fdecb13f2177736242b80b39e96 commit 3ae6894ec28bfa193b952f929364b0cf67a64749
  38. 38. O Modelo Git: Distribuído commit 3ae6894ec28bfa193b952f929364b0cf67a64749 master Repositório Git master dev1 master Desenvolvedor 1 Desenvolvedor 2 Desenvolvedor 3 commit ef6062e6780ed36ad3057ce7b580c2bbfbb89bbd commit ef6062e6780ed36ad3057ce7b580c2bbfbb89bbd commit 3ae6894ec28bfa193b952f929364b0cf67a64749
  39. 39. Git Directory
  40. 40. Git Directory
  41. 41. Git Directory Nós temos apenas um diretório .git!!!
  42. 42. Criando um repositório com Git
  43. 43. Clonando repositórios com Git
  44. 44. git status
  45. 45. git status • Arquivos fora do controle de versão: • Novos arquivos
  46. 46. git status • Arquivos fora do controle de versão: • Novos arquivos • Arquivos modificados mas não atualizados: • Arquivos locais alterados, mas fora do índice
  47. 47. git status • Arquivos fora do controle de versão: • Novos arquivos • Arquivos modificados mas não atualizados: • Arquivos locais alterados, mas fora do índice • Alteração que serão enviadas • O Índice
  48. 48. git status
  49. 49. O Índice
  50. 50. O Índice • Ponto de partida para seu próximo commit
  51. 51. O Índice • Ponto de partida para seu próximo commit • Lista de arquivos semelhantes ao mancados como A, M, D na saída de svn status
  52. 52. Principal diferença • Após efetuar qualquer mudança no diretório de trabalho e antes de executar qualquer commit, você deve usar o comando a d d para adicionar qualquer arquivo novo ou modificado para o índice
  53. 53. Exemplo
  54. 54. Committing • git commit (git ci) • Comita o que estiver no índice • git commit -a (git ci -a) • adiciona os arquivos alterados para o índice e faz o commit, mas ignora os arquivos não versionados • Idêntico ao Subversion
  55. 55. Desfazendo Mudanças $ git checkout PATH $ svn revert PATH
  56. 56. git revert != svn revert # mais parecido com svn revert $ git checkout . # reverte o commit <rev> e comita o resultado $ git revert <rev>
  57. 57. Criando branch
  58. 58. Criando branch Tudo em apenas um comando!
  59. 59. Merges
  60. 60. Merges # voltando para o branch master $ git co master
  61. 61. Merges # voltando para o branch master $ git co master # juntando as mudanças de outro branch $ git merge {outro-branch}
  62. 62. Merges # voltando para o branch master $ git co master # juntando as mudanças de outro branch $ git merge {outro-branch} # apagando o branch usado git br -d {outro-branch}
  63. 63. Resolvendo conflitos
  64. 64. Resolvendo conflitos $ git merge {branch-conflitante} Auto-merged README CONFLICT (content): Merge conflict in README Automatic merge failed; fix conflicts and then commit the result
  65. 65. Resolvendo conflitos $ git merge {branch-conflitante} Auto-merged README CONFLICT (content): Merge conflict in README Automatic merge failed; fix conflicts and then commit the result # corrigindo o conflito e comitando
  66. 66. Resolvendo conflitos $ git merge {branch-conflitante} Auto-merged README CONFLICT (content): Merge conflict in README Automatic merge failed; fix conflicts and then commit the result # corrigindo o conflito e comitando $ vim README
  67. 67. Resolvendo conflitos $ git merge {branch-conflitante} Auto-merged README CONFLICT (content): Merge conflict in README Automatic merge failed; fix conflicts and then commit the result # corrigindo o conflito e comitando $ vim README $ git add README
  68. 68. Resolvendo conflitos $ git merge {branch-conflitante} Auto-merged README CONFLICT (content): Merge conflict in README Automatic merge failed; fix conflicts and then commit the result # corrigindo o conflito e comitando $ vim README $ git add README $ git ci -m “corrigi o conflito com o branch {branch-conflitante}”
  69. 69. Curiosidades sobre Git
  70. 70. Curiosidades sobre Git • Para remover arquivos e diretórios: git rm {file-name} git rm -rf {file-name}
  71. 71. Curiosidades sobre Git • Para remover arquivos e diretórios: git rm {file-name} git rm -rf {file-name} • Para renomear arquivos: git mv {file-name} {new-file-name}
  72. 72. Curiosidades sobre Git
  73. 73. Curiosidades sobre Git Se seus diretórios estão vazios, Git não está nem aí para eles!
  74. 74. Dúvidas?

×