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

HACKTOBERFEST MEETUP - Aprendendo GIT & GITHUB

HACKTOBERFEST MEETUP - Aprendendo GIT & GITHUB

Ana Luiza Portello

July 03, 2019
Tweet

More Decks by Ana Luiza Portello

Other Decks in Programming

Transcript

  1. APRENDENDO
    GIT E GITHUB

    View Slide

  2. Olar!
    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. 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

  8. test.txt
    Oi tudo bom
    Meu nome é ana luiza
    Esse é o hacktoberfest 2018
    Criei o arquivo txt inicial

    View Slide

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

    View Slide

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

    View Slide

  11. 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

  12. Criei o arquivo txt inicial
    Editei ano e adicionei meu nome

    View Slide

  13. 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

  14. COMO
    COMEÇAR?

    View Slide

  15. Instalar git

    View Slide

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

    View Slide

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

    View Slide

  18. 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

  19. git init

    View Slide

  20. Cria um novo repositório

    View Slide

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

    View Slide

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

    View Slide

  23. git status

    View Slide

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

    View Slide

  25. View Slide

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

    View Slide

  27. Houveram mudanças no meu repositorio vazio!
    git status

    View Slide

  28. View Slide

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

    View Slide

  30. git add

    View Slide

  31. git add test.txt
    git status

    View Slide

  32. Staging x Environment

    View Slide

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

    View Slide

  34. git commit

    View Slide

  35. 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

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

    View Slide

  37. Nomes de commit

    View Slide

  38. 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

  39. View Slide

  40. git log

    View Slide

  41. View Slide

  42. Add test.txt

    View Slide

  43. git push

    View Slide

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

    View Slide

  45. Add test.txt Add test.txt

    View Slide

  46. Add test.txt Add test.txt

    View Slide

  47. git clone
    test/
    test.txt

    View Slide

  48. 48
    test.txt
    Oi tudo bom
    Somos julia e ana luiza
    Esse é o hacktoberfest 2019

    View Slide

  49. git diff

    View Slide

  50. 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

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

    View Slide

  52. Nesse momento o repositorio local dela tem
    um commit a mais
    Add test.txt Add test.txt Add test.txt
    Edit test.txt

    View Slide

  53. git push
    Add test.txt Add test.txt
    Edit test.txt
    Add test.txt
    Edit test.txt

    View Slide

  54. git pull

    View Slide

  55. git pull
    Add test.txt
    Edit test.txt
    Add test.txt
    Edit test.txt
    Add test.txt
    Edit test.txt

    View Slide

  56. E assim funciona um
    work flow comum

    View Slide

  57. 57
    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 é possivel criar versões do mesmo projeto.

    View Slide

  58. 58
    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

  59. 59
    Adicionei arquivo test.txt
    Editei ano

    View Slide

  60. 60

    View Slide

  61. git branch

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  66. GITHUB

    View Slide

  67. “Facebook para programadores”

    View Slide

  68. 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

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

    View Slide

  70. 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

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

    View Slide

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

    View Slide

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

    View Slide

  74. View Slide

  75. View Slide

  76. Done!

    View Slide

  77. View Slide

  78. View Slide

  79. Como ficam os commits

    View Slide

  80. View Slide

  81. Como ficam as branches

    View Slide

  82. View Slide

  83. View Slide

  84. 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

  85. ISSUES

    View Slide

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

    View Slide

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

    View Slide

  88. View Slide

  89. View Slide

  90. PULL REQUEST

    View Slide

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

    View Slide

  92. É 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

  93. Com 4 PRs já é possível receber a camiseta e
    os brindes!

    View Slide

  94. View Slide

  95. View Slide

  96. View Slide

  97. Eu quero colaborar!

    View Slide

  98. 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

  99. View Slide

  100. View Slide

  101. git clone

    View Slide

  102. View Slide

  103. View Slide

  104. View Slide

  105. View Slide

  106. Obrigada!
    anabastos
    @naluhh
    @anapbastos

    View Slide