git e contibuição com projetos open source usando github
TRANSCRIPT
![Page 1: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/1.jpg)
Bruno Orlandi
Git e contribuição para projetos Open Source
2ª Edição
![Page 2: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/2.jpg)
Bruno Orlandi● 5º Ano BCC – ICMC USP
● P&D – Ícaro Technologies
● Desenvolvimento Web
● Gosta de compartilhar conhecimento
● @BrOrlandi
![Page 3: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/3.jpg)
Instalando
● Instalar o Git:
sudo aptget install git
● Escolha sua interface gráfica:
– https://gitscm.com/downloads/guis
● Recomendado: GitEye
– http://www.collab.net/downloads/giteye
![Page 4: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/4.jpg)
Sobre o Minicurso
● Não será abordado a parte técnica do Git.
● Objetivo aprender Git e sua utilidade na prática!
● Dúvidas e correções a qualquer momento!
![Page 5: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/5.jpg)
Conteúdo
● Controle de Versão● Comandos Básicos● Ramificações● Publicando e Colaborando● Exercícios
![Page 6: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/6.jpg)
![Page 7: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/7.jpg)
O que é Git-SCM
● Sistema de Controle de Versão Distribuído● SCM Source Control Management→● Criado por Linus Torvalds (2005)● Auxiliar no Desenvolvimento do Linux
![Page 8: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/8.jpg)
Gerência de Configuração de Software
![Page 9: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/9.jpg)
Gerência de Configuração de Software
● Durante o desenvolvimento do software queremos saber:
– O que mudou e quando?– Por que mudou?– Quem fez a mudança?– Podemos reproduzir esta mudança?
![Page 10: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/10.jpg)
Gerência de Configuração de Software
● Identificação● Documentação● Controle● Auditoria
![Page 11: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/11.jpg)
Gerência de Configuração de Software
● Artefatos:
– Código fonte– Documentação do Software– Manual de Usuário
![Page 12: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/12.jpg)
Problema exemplo
● Você precisa editar um código que está no seu Dropbox
● Você faz o download do arquivo● Faz as alterações necessárias● Salva o arquivo no Dropbox
![Page 13: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/13.jpg)
Problema exemplo
● Seu colega também quer editar o código● Vocês baixam o mesmo arquivo junto● Você edita e salva no Dropbox● Seu colega edita e salva no Dropbox e acaba
sobrescrevendo seu código
![Page 14: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/14.jpg)
Controle de Versão resolve
● Controle de versão faz o 'merge' entre as alterações.
![Page 15: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/15.jpg)
Git é Distribuído
![Page 16: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/16.jpg)
Controle de Versão
![Page 17: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/17.jpg)
O que é GitHub
● Servidor de repositórios Git● Surgiu em 2008● +10 milhões de repositórios● +10 milhões de usuários
![Page 18: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/18.jpg)
Estão no GitHub
![Page 19: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/19.jpg)
Usam Git
![Page 20: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/20.jpg)
Alternativas
● Subversion (SVN)● Mercurial● CVS Concurrent Versioning System● Bazaar
● Git é o mais rápido e eficiente
![Page 21: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/21.jpg)
Servidores
Servidores/Suporte git Mercurial SVN
GitHub V
GitLab V
Bitbucket V V
SourceForge V V V
Google Code V V V
![Page 22: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/22.jpg)
Vamos começar na prática!
![Page 23: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/23.jpg)
Instalando
● Instalar o Git:
sudo aptget install git
● Escolha sua interface gráfica:
– https://gitscm.com/downloads/guis
● Recomendado: GitEye
– http://www.collab.net/downloads/giteye
![Page 24: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/24.jpg)
Criar conta no Github
● Acessem https://github.com/● Criem sua conta.● Lembrese, através dessa conta você poderá
contribuir com milhões de projetos open source.
![Page 25: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/25.jpg)
Ajuda
● Quando precisar de ajuda:
git help <command>
● Site oficial:
– https://gitscm.com/
![Page 26: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/26.jpg)
Criando o Primeiro Repositório
git init PrimeiroRepo
● Será criado o diretório configurado como um repositório Git
● Todas as configurações do repositório ficam na pasta .git
![Page 27: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/27.jpg)
Crie seu primeiro arquivo
● Crie um arquivo, edite e adicione ao repositório:
gedit PrimeiroArquivo
git add PrimeiroArquivo
git commit m “Criado o primeiro arquivo.”
![Page 28: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/28.jpg)
Configurando
● Configure seu nome e email:
git config global user.name “MeuUserName”
git config global user.email “[email protected]”
● Configure cores no terminal:
git config global color.ui auto
![Page 29: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/29.jpg)
Git Status e Log
● Comando para ver o status do repositório
git status
● Ver últimos commits no repositório:
git log
![Page 30: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/30.jpg)
Criar um repositório remoto
● Crie um repositório no Github.● Configure o repositório remoto.● Crie um arquivo README.md● Faça o upload das alterações.
git remote add <remote> <url>
![Page 31: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/31.jpg)
Git Push
● Enviar alterações (commits) de uma branch para o repositório remoto.
● A primeira vez:
git push u origin master
● O envio é rejeitado se o repositório local não estiver sincronizado.
git push <remote> <branch>
git push
![Page 32: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/32.jpg)
Git Add
git add <lista de arquivos>
● Adiciona os arquivos novos e modificados para o próximo commit
git add .
![Page 33: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/33.jpg)
Git Commit
git commit [m “Message”]
● Registra o commit com todos os arquivos que usou “git add”
● Se o parametro de mensagem não for passado abrirá um editor de texto para escrever a mensagem
● git config global core.editor gedit
![Page 34: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/34.jpg)
Git Workflow
● Basicamente a maior parte do trabalho com o git consiste nestas tarefas:
– Editar– Commitar– Sincronizar com o repositório remoto
● Exercite estes comandos!
![Page 35: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/35.jpg)
Revisão dos comandos
● git status
● git log
● git add
● git commit
● git push
![Page 36: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/36.jpg)
Status dos arquivos
● Edite o arquivo criado anteriormente● Crie um novo arquivo e veja o seu status no
repositório
![Page 37: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/37.jpg)
Estados dos arquivos
● Não monitorado (untracked)● Modificado (modified)● Preparado (staged)● Consolidado (commited)
![Page 38: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/38.jpg)
Estados dos arquivos
![Page 39: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/39.jpg)
Dif
git diff
● Exibir diferenças entre commits e branchs
git diff [path]
● Diferença no diretório
git diff HEAD~1
● Mostra o que foi alterado no último commit● Ver diff no GitHub
![Page 40: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/40.jpg)
Ferramenta externa Dif
git config global diff.tool diffmerge
● Permite usar uma ferramenta externa para usar no Diff e também no Merge.
git difftool HEAD~1
![Page 41: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/41.jpg)
Exercício 1
● Remova uma linha de um arquivo● Adicione uma nova linha no mesmo arquivo● Adicione um novo arquivo com pelo menos
uma linha● Faça o commit e o push das alterações● Veja as diferenças do commit pelo GitHub
![Page 42: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/42.jpg)
Git Clone
git clone <URL>
● Baixa o repositório remoto.● Outra forma de criar um repositório local.● Já vem com o remote configurado.
![Page 43: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/43.jpg)
Git Pull
git pull
● Baixa as alterações do repositório remoto.● Mantém o repositório sincronizado com os
últimos commits de uma branch.
![Page 44: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/44.jpg)
Exercício 2
● Configure um colaborador para seu repositório.
● Ele deve clonar seu repositório e fazer um commit nele.
● Você deve atualizar seu repositório com o novo commit.
● Invertam os papéis.
![Page 45: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/45.jpg)
Navegar no histórico
git checkout <commit> <file>
● Permite ver como um arquivo ou todo o repositório estava em um determinado commit.
![Page 46: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/46.jpg)
Git checkout
git checkout <commit>
● Altera o repositório para o estado daquele commit.
● Útil para fazer testes antes e depois de alterações.
git checkout master
● Para voltar o repositório no último commit.
![Page 47: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/47.jpg)
Desfazendo alterações
git checkout <path_or_file>
● Irá desfazer todas as alterações que não estejam no Stage desde o último commit.
git checkout HEAD <path_file>
● Desfazer as alterações desde o último commit incluindo o Stage.
![Page 48: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/48.jpg)
Git Revert
git revert <commit>
● Irá criar um novo commit que desfaz as alterações do commit especificado.
● Útil para desfazer um commit antigo.
![Page 49: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/49.jpg)
Git reset
git reset <commit>
● Resetar o repositório para um determinado commit.
git reset hard <commit>
● Resetar e remover todas as alterações.
– Cuidado ao usar! Não usar se já estiver publicado.
● Útil para desfazer últimos commits.
![Page 50: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/50.jpg)
Conflitos
● Conflitos podem acontecer ao unirmos alterações.
● Acontecem quando versões diferentes possuem as mesmas linhas nos mesmos arquivos editadas diferentes.
● O Git identifica os conflitos e fica aguardando a solução deles.
● Ao resolver os conflitos deve ser feito um commit.
![Page 51: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/51.jpg)
ConflitosLinha 1Linha 2Linha 3
Linha 1Linha 2Linha 3Nova linha
Linha 1Linha 2Linha 3Quarta linha
?
![Page 52: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/52.jpg)
Exercício 3
● Crie um conflito no repositório do seu par.● Seu par deve editar o mesmo arquivo que
você.● Você deve fazer o pull, resolver o conflito e
fazer o push das suas alterações.● Seu par deve ver que a sua alteração foi
adicionada junto à alteração dele.● Invertam os papéis.
![Page 53: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/53.jpg)
Branching
Criando ramificações do repositório
![Page 54: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/54.jpg)
Branch
● É uma lista de commits.● Representa ramificações no repositório.● Muito útil para trabalhos colaborativos.● Branchs de desenvolvimento facilitam o
controle.● Branch master é a padrão.
git branch
![Page 55: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/55.jpg)
Branching
git branch <nova_branch>
● Cria uma nova branch.
git branch d <branch>
● Excluir uma branch.
![Page 56: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/56.jpg)
Git Checkout Branch
git checkout <branch>
● Muda para a branch.● Seu repositório passa a ter os commits que a
branch possui e novos commits serão adicionados à ela.
![Page 57: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/57.jpg)
Exercício 4
● Crie uma nova branch no seu repositório.● Mude para esta branch e faça pelo menos 2
commits.● Faça o upload e veja sua nova branch no
GitHub.● Faça um commit na master que altere as
mesmas linhas.● Veja como as branchs divergem no GitHub.
![Page 58: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/58.jpg)
Git Merge
git merge <branch>
● Aplicar os commits de uma branch na branch atual.
● Encontra um commit comum(base) entre as branchs e aplica todos os commits que a branch atual não possui.
● Caso existam commits na branch atual que não estão na outra, será criado um commit de merge.
![Page 59: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/59.jpg)
Exercício 5
● Fazer o merge da nova branch na master.● Resolver o conflito e visualizar no GitHub o
gráfico das branchs.
![Page 60: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/60.jpg)
Git Rebase
git rebase <branch>
● Semelhante ao Merge porém é diferente na ordem de aplicar os commits.
● No Rebase, os seus commits na frente da base são removidos temporariamente, os commits de outra branch são aplicados na sua branch e por fim seus commits são aplicados um a um.
● Pode acontecer conflitos que serão resolvidos para cada commit.
![Page 61: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/61.jpg)
Exercício 6
● Faça um commit na master e outro em outra branch.
● Faça o rebase da branch com a master.● Veja a ordem dos commits.● Mesmo que tenha conflitos o histórico de
commits é preservado.
![Page 62: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/62.jpg)
Git Fetch
git fetch
● Baixa as atualizações do remote porém não aplica elas no repositório.
● Permite fazer o rebase de uma branch em vez de fazer o merge.
● Pull = Fetch + Merge● Fetch e Rebase é melhor para manter histórico
do desenvolvimento.
![Page 63: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/63.jpg)
Exercício 7
● Com a branch master sincronizadas você e seu par devem fazer commits na master.
● Seu par deve fazer o push dos commits dele.● Antes de você fazer o push dos seus commits
você deve fazer o rebase com os commits do seu par.
![Page 64: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/64.jpg)
Tag
● Útil para definir versões estáveis do projeto.● Semelhante a Branch porém não recebe mais
commits.● Guarda um estado do repositório.
git tag [nome da tag]
git push <remote> <tag>
![Page 65: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/65.jpg)
Interfaces Gráficas GUI
● Pelo terminal se faz tudo.● Interfaces gráficas ajudam na visualização e
auxiliam em algumas tarefas.● Recomendadas:
– Egit – Plugin para Eclipse– GitEye – Linux, Windows e Mac– SourceTree – Para Windows
● Não Recomendado: GitHub for Windows
![Page 66: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/66.jpg)
GitHub e colaboração com Open Source
![Page 67: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/67.jpg)
Fork no GitHub
● Copia um repositório de outro usuário para o seu usuário no GitHub.
● É assim que começa a contribuição para outros projetos.
● Você teria uma cópia independente do repositório original, podendo fazer quaisquer alterações.
![Page 68: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/68.jpg)
Issues no GitHub
● Tradução: Questões.● Reportar bugs.● Organizar tarefas a serem feitas.● Permite discussão entre os usuários.● Pode ser referenciado por commits.
– Commit: “Closes #3”
![Page 69: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/69.jpg)
Pull Request
● O grande simbolo de colaboração.● É quando você solicita que sua alterações
sejam unidas a uma branch no mesmo repositório ou a um repositório que sofreu o fork.
● Igual uma Issue porém com uma branch associada.
● Muito útil para o trabalho colaborativo.
![Page 70: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/70.jpg)
Fluxo do GitHub
● https://guides.github.com/introduction/flow/
![Page 71: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/71.jpg)
Exercício Final
● Faça um fork deste repositório:
https://github.com/BrOrlandi/GitTrainingWall ● Rode o projeto.● Sua tarefa é criar um template com informações
do seu usuário no GitHub.● Faça o trabalho em um branch separada e depois
crie um Pull Request para o repositório original.
![Page 72: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/72.jpg)
Caso de Exemplo
● Extensão para GNOME: Desktop Scroller.● Cria uma borda de rolagem entre os Desktops.● Permite configurar onde a borda é ativa.● Hoje mantido por outros usuários.
![Page 73: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/73.jpg)
Extras
● .gitignore● Git commit ammend● Git Stash● GitHub pages● Milestones● Hooks
![Page 74: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/74.jpg)
Dúvidas?
![Page 75: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/75.jpg)
@BrOrlandi
www.slideshare.net/BrunoOrlandi
Obrigado!
![Page 76: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/76.jpg)
Termos
● Repositório: onde são armazenados todos os arquivos do projeto.
● Commit: registro de alterações realizadas. Como se fosse um “checkpoint”.
● Branch: ramificação do projeto, uma linha de desenvolvimento diferente
![Page 77: Git e contibuição com projetos open source usando GitHub](https://reader034.vdocuments.pub/reader034/viewer/2022050812/58743baa1a28ab0e6c8b58f7/html5/thumbnails/77.jpg)
Termos
● Merge: incorporar alterações realizadas ou unir branchs.
● Fork: bifurcação, uma cópia do projeto. Ubuntu é um fork do Debian.
● Push: enviar as alterações para um repositório remoto.
● Pull e Fetch: baixar as alterações feitas de um repositório remoto. Pull realiza o merge.