Slide 1

Slide 1 text

APRENDENDO GIT E GITHUB

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Pro desenvolvimento existe uma solução! GIT

Slide 6

Slide 6 text

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.

Slide 7

Slide 7 text

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"

Slide 8

Slide 8 text

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.

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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”

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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.

Slide 15

Slide 15 text

COMO COMEÇAR?

Slide 16

Slide 16 text

Instalar git

Slide 17

Slide 17 text

CLI

Slide 18

Slide 18 text

GUI

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

Supondo que você quer começar um projeto novo

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

git init

Slide 24

Slide 24 text

Cria um novo repositório

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

git status

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

Adicione um arquivo a esse repositório test.txt

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

git add

Slide 35

Slide 35 text

git add test.txt git status

Slide 36

Slide 36 text

Staging x Environment

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

git commit

Slide 39

Slide 39 text

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.

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

Nomes de commit

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

git log

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

git push

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

git clone

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

git clone test/ test.txt

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

git diff

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

git pull

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

E assim funciona um work flow comum

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

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.

Slide 67

Slide 67 text

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.

Slide 68

Slide 68 text

68

Slide 69

Slide 69 text

69 Adicionei arquivo test.txt Editei ano

Slide 70

Slide 70 text

70

Slide 71

Slide 71 text

git branch

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

73 git branch - master - feat/adicionar-poema

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

git merge

Slide 78

Slide 78 text

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

Slide 79

Slide 79 text

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

Slide 80

Slide 80 text

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

Slide 81

Slide 81 text

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

Slide 82

Slide 82 text

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

Slide 83

Slide 83 text

83 Feat/adicionar-poema git pull origin master

Slide 84

Slide 84 text

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

Slide 85

Slide 85 text

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

Slide 86

Slide 86 text

GITHUB

Slide 87

Slide 87 text

“Facebook para programadores”

Slide 88

Slide 88 text

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

Slide 89

Slide 89 text

Github serve para compartilhar códigos com outros desenvolvedores.

Slide 90

Slide 90 text

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.

Slide 91

Slide 91 text

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

Slide 92

Slide 92 text

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

Slide 93

Slide 93 text

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

Slide 94

Slide 94 text

No content

Slide 95

Slide 95 text

No content

Slide 96

Slide 96 text

Done!

Slide 97

Slide 97 text

No content

Slide 98

Slide 98 text

No content

Slide 99

Slide 99 text

Como ficam os commits

Slide 100

Slide 100 text

No content

Slide 101

Slide 101 text

Como ficam as branches

Slide 102

Slide 102 text

No content

Slide 103

Slide 103 text

No content

Slide 104

Slide 104 text

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.

Slide 105

Slide 105 text

ISSUES

Slide 106

Slide 106 text

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

Slide 107

Slide 107 text

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

Slide 108

Slide 108 text

No content

Slide 109

Slide 109 text

PULL REQUEST

Slide 110

Slide 110 text

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

Slide 111

Slide 111 text

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

Slide 112

Slide 112 text

No content

Slide 113

Slide 113 text

No content

Slide 114

Slide 114 text

Eu quero colaborar!

Slide 115

Slide 115 text

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

Slide 116

Slide 116 text

No content

Slide 117

Slide 117 text

No content

Slide 118

Slide 118 text

git clone

Slide 119

Slide 119 text

No content

Slide 120

Slide 120 text

No content

Slide 121

Slide 121 text

No content

Slide 122

Slide 122 text

No content

Slide 123

Slide 123 text

Obrigada! anabastos @naluhh @anapbastos