Git & Github - RLadies

Git & Github - RLadies

Fcfcfbcdbe8543b6d76c7566d6e1693c?s=128

Ana Luiza Portello

September 12, 2019
Tweet

Transcript

  1. APRENDENDO GIT E GITHUB

  2. Ola! Meu nome é Ana Bastos Sou engenheira de software

    e cientista da computação. 2 anabastos @naluhh @anapbastos
  3. Talvez você já tenha passado por isso... Trabalho1.doc Trabalho2.doc TrabalhoFinal.doc

    TrabalhoFinal Mesmo.doc TrabalhoFinal MesmoAgoraVai.doc
  4. Ou talvez você tenha tido problemas pra outras pessoas mexerem

    em um arquivo só...
  5. Pro desenvolvimento existe uma solução! GIT

  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.
  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"
  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.
  9. test.txt Oi tudo bom Meu nome é ana luiza Esse

    é o rladies 2018 “Criei o arquivo txt inicial”
  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”
  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
  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
  13. 1- Criei o arquivo txt inicial 2- Editei ano e

    adicionei meu nome
  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.
  15. COMO COMEÇAR?

  16. Instalar git

  17. CLI

  18. GUI

  19. None
  20. git config --global user.name “Ana” git config --global user.email “analpbastos@gmail.com”

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

  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.
  23. git init

  24. Cria um novo repositório

  25. Salva toda a estrutura de pastas e arquivos em um

    "repositório", que é o nosso ambiente de trabalho.
  26. mkdir test cd test git init test/ “Ok, vou olhar

    pra essa pasta test vazia”
  27. git status

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

    que foram criados.
  29. None
  30. Adicione um arquivo a esse repositório test.txt

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

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

  34. git add

  35. git add test.txt git status

  36. Staging x Environment

  37. O git add coloca sua modificação para “Staging” Tudo o

    que está em staging é o que você quer que seja “Commitado”
  38. git commit

  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.
  40. git commit -m “Criei o arquivo test.txt”

  41. Nomes de commit

  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.
  43. None
  44. git log

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

  47. git push

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

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

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

  51. git clone

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

    está
  53. git clone <nomedorepositorio> test/ test.txt

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

    remoto
  55. 55 test.txt Oi tudo bom Somos julia e ana luiza

    Esse é o rladies 2019
  56. git diff

  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
  58. 58 git add test.txt git commit -m “Editei ano e

    adicionei meu nome”
  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
  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
  61. git pull

  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
  63. E assim funciona um work flow comum

  64. Add: Adicionar em staging Commit: Criar um novo estado com

    uma mensagem descritiva Push: Adicionar ao remoto Pull: Atualizar meu repositório
  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
  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.
  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.
  68. 68

  69. 69 Adicionei arquivo test.txt Editei ano

  70. 70

  71. git branch

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

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

  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
  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
  76. 76 Feat/adicionar-poema Master Add test.txt Edit test.txt Adicionar poema Acabar

    o poema
  77. git merge

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

    o poema
  79. 79 Master Add test.txt Edit test.txt Adicionar poema Acabar poema

    Merge de feat/adicionar poema Remoto
  80. 80 Feat/adicionar-poema Master Add test.txt Edit test.txt Adicionar poema Acabar

    o poema Adicionei cabeçalho
  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
  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
  83. 83 Feat/adicionar-poema git pull origin master

  84. 84 Add test.txt Edit test.txt Adicionar poema Acabar o poema

    (Merge da master) Adicionei cabeçalho
  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
  86. GITHUB

  87. “Facebook para programadores”

  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
  89. Github serve para compartilhar códigos com outros desenvolvedores.

  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.
  91. Vincular ao seu Git Instalado Pra isso usa-se uma chave

    ssh
  92. ssh-keygen -t rsa -C "your_email@example.com"

  93. ssh-keygen -t rsa -C "your_email@example.com" pbcopy < ~/.ssh/id_rsa.pub

  94. None
  95. None
  96. Done!

  97. None
  98. None
  99. Como ficam os commits

  100. None
  101. Como ficam as branches

  102. None
  103. None
  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.
  105. ISSUES

  106. - Indicar problemas / bugs - Sugerir mudanças - Apontar

    coisas que precisam ser modificadas / atualizadas - Funcionalidades que precisam ser implementadas
  107. “Problema na hora de fazer x coisa em x caso”

    “Atualizar dependencias” “Funcionalidade de tal”
  108. None
  109. PULL REQUEST

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

    Github.
  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.
  112. None
  113. None
  114. Eu quero colaborar!

  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
  116. None
  117. None
  118. git clone <repositorioqueforkei> <fazer modificações>

  119. None
  120. None
  121. None
  122. None
  123. Obrigada! anabastos @naluhh @anapbastos