Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Git & Github - RLadies

Git & Github - RLadies

Ana Luiza Portello

September 12, 2019
Tweet

More Decks by Ana Luiza Portello

Other Decks in Programming

Transcript

  1. APRENDENDO
    GIT E GITHUB

    View Slide

  2. Ola!
    Meu nome é Ana Bastos
    Sou engenheira de
    software e cientista da
    computação.
    2
    anabastos
    @naluhh
    @anapbastos

    View Slide

  3. Talvez você já tenha
    passado por isso...
    Trabalho1.doc Trabalho2.doc TrabalhoFinal.doc TrabalhoFinal
    Mesmo.doc
    TrabalhoFinal
    MesmoAgoraVai.doc

    View Slide

  4. Ou talvez você tenha tido
    problemas pra outras
    pessoas mexerem em um
    arquivo só...

    View Slide

  5. Pro desenvolvimento existe uma solução!
    GIT

    View Slide

  6. Git é um sistema de controle de versionamento de projetos
    e é uma ferramenta essencial para desenvolvedores.
    Com ele podemos criar versões de um arquivo com cada
    modificação salvando todas as diferenças entre os arquivos
    e pastas e ainda mantendo um histórico de tudo que foi
    modificado em cada versão.

    View Slide

  7. Foi criado em 2005 pelo Linus Torvalds para o
    desenvolvimento do Kernel do Linux.
    FUNFACT: Git é uma expressão inglesa que significa “Pessoa
    desagradável” e de acordo com o Linus ele se referia a si
    mesmo quando deu esse nome.
    "the stupid content tracker"

    View Slide

  8. O Git permite que você revise e escale seu
    projeto sem precisar ficar restaurando os
    estados de arquivo passados, além de ajudar
    muito quando estamos trabalhando em grupo.

    View Slide

  9. test.txt
    Oi tudo bom
    Meu nome é ana luiza
    Esse é o rladies 2018
    “Criei o arquivo txt inicial”

    View Slide

  10. test.txt
    Oi tudo bom
    Somos julia e ana luiza
    Esse é o rladies 2019
    Quando outra pessoa for editar...
    “Editei ano e adicionei
    meu nome”

    View Slide

  11. test.txt
    Oi tudo bom
    Somos julia e ana luiza
    Esse é o rladies 2019
    Oi tudo bom
    Meu nome é ana luiza
    Esse é o rladies 2018
    versão 1 versão 2

    View Slide

  12. test.txt
    Oi tudo bom
    Meu nome é
    Somos julia e ana luiza
    Esse é o rladies 2019
    Oi tudo bom
    Meu nome é ana luiza
    Esse é o rladies 2018

    View Slide

  13. 1- Criei o arquivo txt inicial
    2- Editei ano e adicionei meu nome

    View Slide

  14. Fica fácil na hora em que alguém for colaborar com
    modificações no projeto possibilitando até mesmo que duas
    pessoas mexam no mesmo arquivo.

    View Slide

  15. COMO
    COMEÇAR?

    View Slide

  16. Instalar git

    View Slide

  17. CLI

    View Slide

  18. GUI

    View Slide

  19. View Slide

  20. git config --global user.name “Ana”
    git config --global user.email “[email protected]
    Configurar o Git

    View Slide

  21. Supondo que você quer começar um
    projeto novo

    View Slide

  22. O propósito do git é lidar com um projeto, que é um
    conjunto de diversos arquivos que serão modificados
    através do seu desenvolvimento.

    View Slide

  23. git init

    View Slide

  24. Cria um novo repositório

    View Slide

  25. Salva toda a estrutura de pastas e arquivos em um
    "repositório", que é o nosso ambiente de trabalho.

    View Slide

  26. mkdir test
    cd test
    git init
    test/
    “Ok, vou olhar pra essa pasta
    test vazia”

    View Slide

  27. git status

    View Slide

  28. Lista todos os arquivos que foram modificados e
    arquivos novos que foram criados.

    View Slide

  29. View Slide

  30. Adicione um arquivo a esse repositório
    test.txt

    View Slide

  31. Houveram mudanças no meu repositório vazio!
    git status

    View Slide

  32. View Slide

  33. Ok. Quero colocar essa modificação no meu
    repositório!

    View Slide

  34. git add

    View Slide

  35. git add test.txt
    git status

    View Slide

  36. Staging x Environment

    View Slide

  37. O git add coloca sua modificação para “Staging”
    Tudo o que está em staging é o que você quer que
    seja “Commitado”

    View Slide

  38. git commit

    View Slide

  39. Commit é de fato o registro de quais arquivos você
    modificou incluindo todas as mudanças como adicionar ou
    modificar arquivos.
    Pega todas as modificações em staging e cria um estado
    que você pode voltar atrás a qualquer momento.

    View Slide

  40. git commit -m “Criei o arquivo test.txt”

    View Slide

  41. Nomes de commit

    View Slide

  42. O que devo commitar?
    ● Pensa em algo que precisa ser
    arrumado ou adicionado
    ● Faça funcionar.
    ● Teste o que foi feito
    ● Adicione o commit.

    View Slide

  43. View Slide

  44. git log

    View Slide

  45. View Slide

  46. Add test.txt
    Meu repositório local
    Repositório remoto

    View Slide

  47. git push

    View Slide

  48. Coloca essa modificação no projeto
    test/
    test.txt

    View Slide

  49. Add test.txt Add test.txt
    Meu repositório local
    Repositório remoto

    View Slide

  50. Add test.txt Add test.txt
    Meu repositório local Repositório remoto

    View Slide

  51. git clone

    View Slide

  52. Copiar o projeto exatamente da
    forma como o repositório remoto
    está

    View Slide

  53. git clone
    test/
    test.txt

    View Slide

  54. Add test.txt Add test.txt
    Repositório local da
    segunda pessoa
    Repositório remoto

    View Slide

  55. 55
    test.txt
    Oi tudo bom
    Somos julia e ana luiza
    Esse é o rladies 2019

    View Slide

  56. git diff

    View Slide

  57. test.txt
    Oi tudo bom
    Meu nome é
    Somos julia e ana luiza
    Esse é o hacktoberfest 2019
    Oi tudo bom
    Meu nome é ana luiza
    Esse é o hacktoberfest 2018

    View Slide

  58. 58
    git add test.txt
    git commit -m “Editei ano e adicionei meu nome”

    View Slide

  59. Nesse momento o repositorio local dela tem
    um commit a mais
    Add test.txt Add test.txt Add test.txt
    Edit test.txt
    Meu local Remoto Local da outra pessoa

    View Slide

  60. git push
    Add test.txt Add test.txt
    Edit test.txt
    Add test.txt
    Edit test.txt
    Meu local Remoto Local da outra pessoa

    View Slide

  61. git pull

    View Slide

  62. git pull
    Add test.txt
    Edit test.txt
    Add test.txt
    Edit test.txt
    Add test.txt
    Edit test.txt
    Meu local Remoto Local da outra pessoa

    View Slide

  63. E assim funciona um
    work flow comum

    View Slide

  64. Add: Adicionar em staging
    Commit: Criar um novo estado
    com uma mensagem descritiva
    Push: Adicionar ao remoto
    Pull: Atualizar meu repositório

    View Slide

  65. Status: Status de arquivos
    modificados e o que está em
    staging para ser commitado
    Log: Todos os commits
    Diff: Mudanças entre o último
    commit e o que eu fiz

    View Slide

  66. 66
    Geralmente sua parte do trabalho não é um commit só mas sim
    algo que você vai trabalhar durante dias.
    Ao invés de todos os colaboradores darem push toda hora no
    mesmo código é possível criar versões do mesmo projeto.

    View Slide

  67. 67
    Pra isso geralmente a gente mantém sempre uma versão
    “Principal” do código chamada Master e separa em “branches” as
    versões de cada funcionalidade.

    View Slide

  68. 68

    View Slide

  69. 69
    Adicionei arquivo test.txt
    Editei ano

    View Slide

  70. 70

    View Slide

  71. git branch

    View Slide

  72. 72
    git branch -B “feat/adicionar-poema”

    View Slide

  73. 73
    git branch
    - master
    - feat/adicionar-poema

    View Slide

  74. 74
    git add test.txt
    git commit -m “Iniciar o poema”
    git push
    Oi tudo bom
    Somos julia e ana luiza
    Esse é o rladies 2019
    Rosas são vermelhas
    Violetas são azuis

    View Slide

  75. 75
    Oi tudo bom
    Somos julia e ana luiza
    Esse é o rladies 2019
    Rosas são vermelhas
    Violetas são azuis
    rladies é top
    git add test.txt
    git commit -m “Acabar o poema”
    git push

    View Slide

  76. 76
    Feat/adicionar-poema
    Master
    Add test.txt Edit test.txt
    Adicionar poema Acabar o poema

    View Slide

  77. git merge

    View Slide

  78. 78
    Feat/adicionar-poema
    Master
    Add test.txt Edit test.txt
    Adicionar poema Acabar o poema

    View Slide

  79. 79
    Master
    Add test.txt
    Edit test.txt
    Adicionar poema
    Acabar poema
    Merge de feat/adicionar poema
    Remoto

    View Slide

  80. 80
    Feat/adicionar-poema
    Master
    Add test.txt Edit test.txt
    Adicionar poema Acabar o poema
    Adicionei cabeçalho

    View Slide

  81. test.txt
    12/09/19 - Arquivo txt
    Oi tudo bom
    Meu nome é
    Somos julia e ana luiza
    Esse é o rladies 2019
    Oi tudo bom
    Meu nome é
    Somos julia e ana luiza
    Esse é o rladies 2019

    View Slide

  82. 82
    Na hora de dar o merge o git afirma que existem
    modificações da master e que a branch precisa ser
    atualizada para que finalizar o merge

    View Slide

  83. 83
    Feat/adicionar-poema
    git pull origin master

    View Slide

  84. 84
    Add test.txt Edit test.txt
    Adicionar poema Acabar o poema
    (Merge da master)
    Adicionei cabeçalho

    View Slide

  85. 85
    12/09/19 - Arquivo txt
    Oi tudo bom
    Somos julia e ana luiza
    Esse é o rladies 2019
    Rosas são vermelhas
    Violetas são azuis
    rladies é top

    View Slide

  86. GITHUB

    View Slide

  87. “Facebook para programadores”

    View Slide

  88. Todo mundo tem
    Você pode ver o que cada um está fazendo
    Você pode seguir pessoas
    Você pode curtir projetos
    Fazer sugestões ou mudanças

    View Slide

  89. Github serve para compartilhar códigos
    com outros desenvolvedores.

    View Slide

  90. Enquanto o Git funciona na sua máquina
    local, o Github é como se fosse um
    repositório remoto na web para todos
    os projetos de código.

    View Slide

  91. Vincular ao seu Git Instalado
    Pra isso usa-se uma chave ssh

    View Slide

  92. ssh-keygen -t rsa -C "[email protected]"

    View Slide

  93. ssh-keygen -t rsa -C "[email protected]"
    pbcopy < ~/.ssh/id_rsa.pub

    View Slide

  94. View Slide

  95. View Slide

  96. Done!

    View Slide

  97. View Slide

  98. View Slide

  99. Como ficam os commits

    View Slide

  100. View Slide

  101. Como ficam as branches

    View Slide

  102. View Slide

  103. View Slide

  104. git remote add origin https://github.com/cubeton/mynewrepository.git
    git push -u origin master
    git push origin my-new-branch
    Pra linkar um repositório git que eu criei a um
    repositório eu preciso usar os seguintes
    comandos.

    View Slide

  105. ISSUES

    View Slide

  106. - Indicar problemas / bugs
    - Sugerir mudanças
    - Apontar coisas que precisam ser
    modificadas / atualizadas
    - Funcionalidades que precisam ser
    implementadas

    View Slide

  107. “Problema na hora de fazer x coisa
    em x caso”
    “Atualizar dependencias”
    “Funcionalidade de tal”

    View Slide

  108. View Slide

  109. PULL REQUEST

    View Slide

  110. PR é enviar uma modificação para um
    repositório remoto no Github.

    View Slide

  111. É um meio de alertar os donos do repositório que você quer
    fazer algumas mudanças no seu código.
    Ele possibilita que ele dê um review no código e possa falar se
    ele quer colocar, ou o que precisa ser modificado pra ele colocar
    no projeto dele.

    View Slide

  112. View Slide

  113. View Slide

  114. Eu quero colaborar!

    View Slide

  115. Para fazer um PR em um repositório que não é meu é
    preciso primeiro fazer “Fork”
    Ou seja, um cópia desse repositório dentro da minha
    conta git

    View Slide

  116. View Slide

  117. View Slide

  118. git clone

    View Slide

  119. View Slide

  120. View Slide

  121. View Slide

  122. View Slide

  123. Obrigada!
    anabastos
    @naluhh
    @anapbastos

    View Slide