Slide 1

Slide 1 text

APRENDENDO GIT E GITHUB

Slide 2

Slide 2 text

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

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 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 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 12

Slide 12 text

Criei o arquivo txt inicial Editei ano e adicionei meu nome

Slide 13

Slide 13 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 14

Slide 14 text

COMO COMEÇAR?

Slide 15

Slide 15 text

Instalar git

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

Supondo que você quer começar um projeto novo

Slide 18

Slide 18 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 19

Slide 19 text

git init

Slide 20

Slide 20 text

Cria um novo repositório

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

git status

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Adicione um arquivo a esse repositório test.txt

Slide 27

Slide 27 text

Houveram mudanças no meu repositorio vazio! git status

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

git add

Slide 31

Slide 31 text

git add test.txt git status

Slide 32

Slide 32 text

Staging x Environment

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

git commit

Slide 35

Slide 35 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 36

Slide 36 text

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

Slide 37

Slide 37 text

Nomes de commit

Slide 38

Slide 38 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 39

Slide 39 text

No content

Slide 40

Slide 40 text

git log

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

Add test.txt

Slide 43

Slide 43 text

git push

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

Add test.txt Add test.txt

Slide 46

Slide 46 text

Add test.txt Add test.txt

Slide 47

Slide 47 text

git clone test/ test.txt

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

git diff

Slide 50

Slide 50 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 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

git pull

Slide 55

Slide 55 text

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

Slide 56

Slide 56 text

E assim funciona um work flow comum

Slide 57

Slide 57 text

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.

Slide 58

Slide 58 text

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.

Slide 59

Slide 59 text

59 Adicionei arquivo test.txt Editei ano

Slide 60

Slide 60 text

60

Slide 61

Slide 61 text

git branch

Slide 62

Slide 62 text

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

Slide 63

Slide 63 text

63 git branch - master - feat/adicionar-poema

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

GITHUB

Slide 67

Slide 67 text

“Facebook para programadores”

Slide 68

Slide 68 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 69

Slide 69 text

Github serve para compartilhar códigos com outros desenvolvedores.

Slide 70

Slide 70 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 71

Slide 71 text

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

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

No content

Slide 75

Slide 75 text

No content

Slide 76

Slide 76 text

Done!

Slide 77

Slide 77 text

No content

Slide 78

Slide 78 text

No content

Slide 79

Slide 79 text

Como ficam os commits

Slide 80

Slide 80 text

No content

Slide 81

Slide 81 text

Como ficam as branches

Slide 82

Slide 82 text

No content

Slide 83

Slide 83 text

No content

Slide 84

Slide 84 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 85

Slide 85 text

ISSUES

Slide 86

Slide 86 text

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

Slide 87

Slide 87 text

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

Slide 88

Slide 88 text

No content

Slide 89

Slide 89 text

No content

Slide 90

Slide 90 text

PULL REQUEST

Slide 91

Slide 91 text

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

Slide 92

Slide 92 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 93

Slide 93 text

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

Slide 94

Slide 94 text

No content

Slide 95

Slide 95 text

No content

Slide 96

Slide 96 text

No content

Slide 97

Slide 97 text

Eu quero colaborar!

Slide 98

Slide 98 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 99

Slide 99 text

No content

Slide 100

Slide 100 text

No content

Slide 101

Slide 101 text

git clone

Slide 102

Slide 102 text

No content

Slide 103

Slide 103 text

No content

Slide 104

Slide 104 text

No content

Slide 105

Slide 105 text

No content

Slide 106

Slide 106 text

Obrigada! anabastos @naluhh @anapbastos