Git Descomplicado

882 views
774 views

Published on

Published in: Technology

Git Descomplicado

  1. 1. Fernando Oliveira (fernando.oliveira@itec.al.gov.br) Analista de Sistemas - ITEC descomplicado
  2. 2. UMA BREVE HISTÓRIA...
  3. 3. LIMPE SUA MENTE DE TUDO QUE VOCÊ CONHECE SOBRE OUTROS SISTEMAS DE CONTROLE DE VERSÃO… Antes de começar…
  4. 4. GIT NÃO É SUBVERSION (Thanks God!)
  5. 5. git-scm.com
  6. 6. FEATURES
  7. 7. GIT É UM SISTEMA DE CONTROLE DE VERSÃO DISTRIBUÍDO
  8. 8. SISTEMAS DE CONTROLE DE VERSÃO CENTRALIZADO
  9. 9. SISTEMAS DE CONTROLE DE VERSÃO DISTRIBUÍDO
  10. 10. “SNAPSHOTS”, AO INVÉS DE “DIFERENÇAS”
  11. 11. CONCEITUALMENTE, GRANDE PARTE DOS OUTROS SISTEMAS ARMAZENAM INFORMAÇÃO COMO UMA LISTA DE ARQUIVOS BASEADOS EM MUDANÇAS
  12. 12. GIT PENSA SEUS DADOS MAIS COMO UM CONJUNTO DE SNAPSHOTS DE UM MINI SISTEMA DE ARQUIVOS
  13. 13. QUASE TODA OPERAÇÃO É LOCAL A maioria das operações no Git só precisa de arquivos e recursos locais para ser executada
  14. 14. GIT GARANTE INTEGRIDADE Tudo no Git é “check-summed”
  15. 15. OS TRÊS ESTADOS
  16. 16. CONFIGURAÇÕES…
  17. 17. Sua identificação $ git config --global user.name “Fernando Oliveira” $ git config --global user.email fernandooliveira@nyxk.com.br Se você quiser sobrescrever estas configurações com um nome e/ou email diferente(s) para um projeto específico, você pode executar os mesmos comandos sem a opção --global no repositório específico.
  18. 18. Seu editor $ git config --global core.editor emacs
  19. 19. Sua “DiffTool” $ git config --global merge.tool vimdiff
  20. 20. Verificando suas configurações $ git config –list Ou uma chave específica $ git config user.name
  21. 21. Estas configurações também podem ser feitas editando o arquivo ~ /. gitconfig
  22. 22. Buscando ajuda $ git help <verb> $ git <verb> --help $ man git-<verb>
  23. 23. Inicializando um repositório Git em um diretório existente $ git init
  24. 24. Clonando um repositório existente $ git clone <repository address>
  25. 25. GRAVANDO MUDANÇAS NO REPOSITÓRIO
  26. 26. Verificando o status dos seus arquivos $ git status
  27. 27. ”Tracking” novos arquivos ou ”Staging” arquivos modificados $ git add
  28. 28. Visualizando mudanças “Staged” e “Unstaged” $ git status $ git diff $ git diff --cached
  29. 29. Submetendo suas alterações $ git commit $ git commit –m ‘some message’ $ git commit –a $ git commit –am ‘some message’
  30. 30. Removendo arquivos $ git rm <file> $ git rm --cached <file>
  31. 31. Movendo arquivos $ git mv file_from file_to Isto é equivalente a $ mv file_from file_to $ git rm file_from $ git add file_to
  32. 32. Visualizando o histórico de commits $ git log $ git log --stat $ git log –graph $ gitk
  33. 33. DESFAZENDO COISAS
  34. 34. Alterando seu último commit $ git commit --amend
  35. 35. “Unstaging” um arquivo “Staged” $ git reset HEAD <file>
  36. 36. Revertendo modificações em um arquivo $ git checkout -- <file>
  37. 37. TRABALHANDO COM REPOSITÓRIOS REMOTOS
  38. 38. Clonando $ git clone <endereço do repositório>
  39. 39. Visualizando $ git remote $ git remote -v
  40. 40. Adicionando repositórios remotos $ git remote add <remote_name> <remote_address>
  41. 41. Buscando e puxando do repositório remoto $ git fetch [remote-name] $ git pull [remote-name]
  42. 42. Enviando para o repositório remoto $ git push origin master
  43. 43. Inspecionando um repositório remoto $ git remote show origin
  44. 44. Removendo e renomeando repositórios remotos $ git remote rename from_name to_name $ git remote rm name
  45. 45. TAGGING
  46. 46. Tipos de tag LightWeight tags Annotated tags
  47. 47. Listando suas tags $ git tag
  48. 48. Criando annotated Tags $ git tag -a v1.4 -m 'my version 1.4’
  49. 49. CriandoLightweight Tags $ git tag v1.4-lw
  50. 50. Verificando Tags $ git show v1.4
  51. 51. Tagging Later $ git tag -a v1.2 -m 'version 1.2' 9fceb02
  52. 52. Compartilhando Tags $ git push origin v1.5 $ git push origin --tags
  53. 53. BRANCHING
  54. 54. Visualizando Branchs $ git branch $ git branch -v
  55. 55. Criando Branchs $ git branch <nome_do_branch> $ git checkout -b <nome_do_branch>
  56. 56. Submetendo alterações no novo branch $ git commit -a -m ’<mensagem>’
  57. 57. Mudando de branch $ git checkout <nome_do_branch>
  58. 58. Merging $ git merge <nome_do_branch>
  59. 59. Entendendo melhor o merge
  60. 60. Excluíndo $ git branch -d <nome_do_branch>
  61. 61. REBASING
  62. 62. Excluíndo $ git rebase <nome_do_branch>
  63. 63. ATENÇÃO Não faça rebase de commits que você enviou para um repositório público.
  64. 64. STASHING
  65. 65. Criando $ git stash
  66. 66. Listando stashs $ git stash list
  67. 67. Recuperando stashs $ git stash apply
  68. 68. THE END!

×