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

Git the Fork out - Git MeetUp & Hacktoberfest @ PUC Minas

Git the Fork out - Git MeetUp & Hacktoberfest @ PUC Minas

Presentation for the Git MeetUp & Hacktoberfest @ PUC Minas on October 17th.

Izabela Borges

October 17, 2017
Tweet

More Decks by Izabela Borges

Other Decks in Technology

Transcript

  1. GIT THE FORK OUT Git &
 GitHub &
 Open-Source &


    CONTRIBUTING.md &
 Hacktoberfest 2017 1
  2. GIT 3 ‣ Git é um sistema de controle de

    versão distribuído e um sistema de gerenciamento de código fonte. ‣ Cada diretório de trabalho do Git é um repositório com um histórico completo e habilidade total de acompanhamento das revisões, não dependente de acesso a uma rede ou a um servidor central. ‣ O Git é um software livre, distribuído sob os termos da versão 2 da GNU General Public License. ‣ https://git-scm.com/downloads
  3. GIT CONFIG 4 ‣ Configuração de ambiente: # altera o

    sistema de cores do terminal para git friendly
 $ git config --system color.ui true # configura o nome de usuario para commit
 $ git config --global user.name “Nome Sobrenome” # configura o e-mail de usuario para commit
 $ git config --global user.email “[email protected]
  4. GIT INIT 5 Init é o comando do git usado

    para inicializar o repositório. Ele cria um diretório /.git que será um histórico de todos os seus arquivos dentro do seu repositório. $ git init
  5. GIT STATUS 6 Status é o comando do git usado

    para ver qual o estado atual do seu repositório. $ git status
  6. GIT STATUS 7 ‣ staged: 
 Arquivos prontos para o

    commit. ‣ unstaged: 
 Arquivos com alterações que ainda não estão prontos para o commit. ‣ untracked: 
 Arquivos que ainda não estão sendo rastreados pelo Git. Geralmente é um arquivo novo. ‣ deleted: 
 Arquivos deletados que estão esperando para ser removidos do Git.
  7. GIT ADD 8 Add é o comando do git usado

    para adicionar um arquivo à staging area. $ git add <arquivo>
  8. GIT ADD 9 ‣ add !--all:
 Você também pode digitar

    git add -A . ou git add * . ‣ git reset:
 Você pode usar o comando git reset <arquivo> para remover um ou mais arquivos da staging area. ‣ Staging Area:
 Um lugar onde agrupamos arquivos para podermos fazer o "commit" deles para o Git.
  9. GIT COMMIT 10 Commit é o comando do git usado

    para tirar um retrato do seu repositório. Assim, se você ou outra pessoa precisar ver as mudanças feitas no repositório, existe uma timeline mostrando todas as alterações. $ git commit -m “Mensagem explicando as mudanças"
  10. GIT LOG 11 Log é o comando do git usado

    para gravar as alterações que foram “committadas” até então, e na ordem em que os commit’s foram feitos. $ git commit -m “Mensagem explicando as mudanças"
  11. GIT LOG 12 ‣ Use git log !--summary para ver

    mais informações sobre cada commit feito. Você pode ver quando arquivos foram adicionados pela primeira vez ou quando foram deletados. É uma visão geral de tudo o que aconteceu durante o projeto.
  12. GIT REMOTE 13 Remote é o comando do git usado

    para vincular um repositório remoto (GitHub, GitLab ou BitBucket) ao seu repositório local. O parâmetro origin se refere ao nome do nosso repo remote. $ git remote add origin 
 https://github.com/<username>/<repositorio>.git
  13. GIT PUSH 14 Push é o comando do git usado

    para gravar o seu repositório local e todo o seu histórico em seu repositório remoto. O origin, é nosso remote, enquanto master é a branch padrão. O parâmetro -u faz com que o git se lembre dos parâmetros origin e master, assim só é necessário fazer um git push na próxima vez. $ git push -u origin master
  14. GIT PULL 15 Pull é o comando do git usado

    para puxar de volta o seu repositório remoto e todo o seu histórico para seu repositório local caso outra pessoa tenha feito alterações. O origin é o nosso remote, enquanto master é a branch da qual você está puxando as mudanças. $ git pull origin master
  15. GIT STASH 16 Stash é o comando do git usado

    quando você precisa dar um pull, mas existem alterações suas as quais você ainda não pode (ou quer) fazer um commit. Você então deve fazer um stash das suas alterações, puxar as alterações do seu remoto e reaplicar as suas alterações presentes no stash. $ git stash $ git pull origin master $ git stash apply
  16. GIT DIFF 17 Diff é o comando do git usado

    quando você precisa saber quais as diferenças desse pull para o seu último commit. HEAD é o parâmetro usado para apontar a sua posição atual na timeline de commit’s. $ git diff HEAD
  17. VOCÊ DEVE MANTER ALTERAÇÕES RELACIONADAS EM CONJUNTO EM COMMIT’S SEPARADOS.

    USAR 'GIT DIFF' OFERECE UMA BOA VISÃO GERAL DAS MUDANÇAS QUE VOCÊ FEZ E PERMITE ADICIONAR ARQUIVOS OU DIRETÓRIOS UM A CADA VEZ E FAZER O COMMIT SEPARADAMENTE. Commit Etiquette COMMIT ETIQUETTE
  18. GIT CHECKOUT 19 Checkout é o comando do git usado

    para voltar arquivos à como eles eram antes do último commit. O parâmetro !-- é usado para garantir que não virá mais parâmetros além do arquivo, assim, caso você tenha uma branch com o mesmo nome do arquivo, apenas o arquivo será afetado, e você não trocará de branch. $ git checkout -- <arquivo>
  19. GIT BRANCHING 20 Branch é uma cópia (um galho) do

    seu código onde você pode implementar uma feature ou corrigir um bug, fazendo commits separados apenas para essa branch. Isso é muito utilizado para evitar quebrar o código em perfeito funcionamento. Assim, você pode fazer um merge das branches apenas quando acabar a implementação. # usado para criar a branch
 $ git branch <nome-da-branch> # usado para trocar de branch
 $ git checkout <nome-da-branch>
  20. GIT RM 21 rm é um comando do git usado

    para se remover arquivos do seu repositório. O legal do comando rm, é que além de deletar os arquivos em disco, ele automaticamente coloca as remoções na staging area, prontas para serem commitadas. $ git rm <arquivo>
  21. GIT MERGE 23 Merge é um comando do git usado

    para combinar duas branches existentes, ou combinar mudanças distintas no mesmo arquivo. # você deve voltar para a branch master
 $ git checkout master # usado para juntar as branches
 $ git merge <nome-da-outra-branch>
  22. GIT BRANCH 24 Quando você não mais precisar de uma

    branch criada, você pode deletar a mesma após o merge. $ git branch -d <nome-da-branch>
  23. GIT CONFIG 25 ‣ Mantendo seu fork up-to-date: # dentro

    do diretório do seu fork
 $ git remote add upstream 
 git://github.com/<username-original>/<repo>.git $ git fetch upstream # fazendo update do fork
 $ git pull upstream master
  24. COOL THINGS 26 ‣ Console interativo de git: https://try.github.io/ ‣

    Git Cheat Sheet do GitHub Education: https:// education.github.com/git-cheat-sheet- education.pdf ‣ Git Real PDF: http:// courseware.codeschool.com.s3.amazonaw s.com/git_real_slides.pdf ‣ Git Real 2 PDF: http:// courseware.codeschool.com.s3.amazonaw s.com/git_real2/git_real_2_full_deck.pdf
  25. COOL THINGS 28 ‣ 12 coisas legais que você pode

    fazer com o GitHub: https://hackernoon.com/12-cool-things-you-can- do-with-github-f3e0424cf2f0 ‣ GitHub Education Pack: education.github.com/ pack/ ‣ Mastering GitHub PDF: http:// courseware.codeschool.com/mastering-github/ CodeSchool_MasteringGithubCourse.pdf ‣ Melhorando issues: https://medium.com/ trainingcenter/melhorando-issues-para-ficarem- mais-amig%C3%A1veis-para- iniciantes-890b0bad4b9
  26. BITBUCKET & GITLAB 29 Git &
 GitHub &
 Alternativas ao

    GitHub &
 Open-Source &
 CONTRIBUTING.md &
 Hacktoberfest 2017
  27. GITKRAKEN 32 O GitKraken é uma interface mais amigável que

    se integra tanto com o GitHub, quanto com o GitLab ou BitBucket. Você pode baixá-lo por aqui:
 https://www.gitkraken.com/
  28. OPEN SOURCE 34 Open Source Software (OSS) é o software

    com o seu código fonte disponibilizado e licenciado com uma licença de código aberto no qual o direito autoral fornece o direito de estudar, modificar e distribuir o software de graça para qualquer um e para qualquer finalidade. OSS muitas vezes tem desenvolvido público, de maneira colaborativa. E é o exemplo mais proeminente de desenvolvimento de conteúdo gerado pelo usuário.
  29. OSS LICENSE 35 A licença define os direitos e obrigações

    que um licenciante concede ao licenciado. As licenças de código aberto concedem o direito de copiar, modificar e redistribuir o código fonte (ou conteúdo). Essas licenças podem ainda impor obrigações como, modificações no código que são distribuídos devem ser disponibilizados em forma de código fonte, uma atribuição autor deve ser colocado em um programa/documentação com o código aberto. Exemplos de licença de software livre incluem licença Apache, licença BSD, GNU General Public License, GNU Lesser General Public License, licença MIT, Eclipse Public License e licença pública Mozilla.
  30. COOL THINGS 36 ‣ Tutorial de Introdução ao Open Source:

    https://www.digitalocean.com/community/ tutorial_series/an-introduction-to-open- source ‣ OSS Licences: https://choosealicense.com/ ‣ Como escolher a licença para o seu software: https://www.cio.com/article/2382115/open- source-tools/how-to-choose-the-best- license-for-your-open-source-software- project.html
  31. COOL THINGS 38 ‣ Como contribuir para o Open Source:

    https:// opensource.guide/how-to-contribute/ ‣ Contribuindo para o meu primeiro OSS: https:// hackernoon.com/contributing-to-my-first-open- source-project-3e432c5e8caa ‣ Porque Contribuir para OSS é legal: https:// code.likeagirl.io/git-out-and-contribute-c01fa643e2e1 ‣ Google Summer of Code: https:// developers.google.com/open-source/gsoc/ ‣ Contribuindo para OSS mesmo sendo iniciante: https:// woliveiras.com.br/posts/contribuindo-para-projetos- open-source-no-github-mesmo-sendo-iniciante/
  32. HACKTOBERFEST 2017 40 ‣ O Hacktoberfest é um evento aberto

    à comunidade internacional. ‣ Pull requests podem ser feitos em qualquer repositório do GitHub. ‣ Inscrições podem ser feitas
 em qualquer dia entre 1º e
 31 de Outubro. ‣ https://hacktoberfest.digitalocean.com/
  33. HACKTOBERFEST 2017 41 Para ganhar uma camisa você deve fazer

    4 pull requests (PRs) entre 1º e 31 de Outubro em qualquer fuso horário. Os PRs podem ser feitos em qualquer repositório público no GitHub. Quaisquer PRs marcado pelos donos 
 de repositórios como spam, ou PRs
 automatizados serão contados 
 como inválidos, e não contarão para
 a aquisição da camisa.
  34. HACKTOBERFEST 2017 - REPOSITÓRIOS 42 ‣ codefights-training do daccpucmg ‣

    hacktoberfest do AliceWonderland ‣ pucminasGitSwift do marcorcb ‣ Projetos Brasileiros para contribuir: https:// medium.com/nossa-coletividad/projetos- brasileiros-para-fazer-pull-requests-nesse- hacktoberfest-4dc9b9b576c0 ‣ Lista de Projetos OSS Beginner Frindly: https:// github.com/MunGell/awesome-for-beginners