SlideShare uma empresa Scribd logo
Uso e Boas Práticas em Projetos Open Source
www.cdsinformatica.com.br
• Mais de 25 anos de experiência no desenvolvimento de software
• Responsável por Pesquisa e Desenvolvimento na CDS Informática
• Microsoft MVP desde 2008
• Microsoft Regional Director
• Um dos criadores do projeto open source CodeCracker: www.github.com/code-cracker
• Mantenedor do projeto open source BoletoNet: www.github.com/boletonet
• Blog: www.carloscds.net
• GitHub: www.github.com/carloscds
www.gotaskfly.com
• Serviço de controle de versão de arquivos
• Mas não somente isto...
• Um dos maiores repositórios de código open source
• Gratuito para repositórios públicos, mas permite privados também
• Oferece uma dinâmica excelente para trabalho em equipe
• Permite versionamento offline e sincronização online
• Permite várias versões do projeto simultaneamente
www.gotaskfly.com
www.gotaskfly.com
www.gotaskfly.com
www.gotaskfly.com
www.gotaskfly.com
www.gotaskfly.com
• Readonly:
• Só vou baixar e usar!
• Folgado:
• Fica achando que o projeto tem um suporte 24x7
• Às vezes fica bravo porque alguém não resolveu na hora!
• Colaborador:
• Vai usar e também enviar o que melhorar de volta
• Criador:
• Cria, compartilha, colabora, ajuda!
www.gotaskfly.com
www.gotaskfly.com
Sabe o que eu mais ouço
quando alguém quer trabalhar
um projeto que está no GitHub ?
www.gotaskfly.com
www.gotaskfly.com
www.gotaskfly.com
www.gotaskfly.com
• Fork
• Clone
• Download
www.gotaskfly.com
• [Fork] – copie para sua conta!
• Branch
• Commit / Push
• Pull Request
• Review
• Deploy
• Merge
www.gotaskfly.com
• É uma cópia do repositório para sua conta
• Se for colaborar no projeto, faça um fork, isto permite que você trabalhe “isolado”, podendo
enviar suas alterações através de um Pull Request (PR)
• Só não esqueça de atualizar seu repositório, afinal o projeto principal está “andando”!
• No seu repositório, você pode fazer qualquer tipo
de operação, o que pode não ser possível no principal
www.gotaskfly.com
• É um “nome/label” para uma alteração ou funcionalidade
• Pode ser utilizado para criar ambientes e também versões
• Mas isto dá muito trabalho, vamos fazer direto na master!!!
• Jamais trabalhe na branch master!!!
www.gotaskfly.com
• Uma das grandes vantagens do Git é o versionamento local
• Isto quer dizer que você pode fazer um Clone de um projeto e trabalhar localmente, fazendo e
desfazendo diversos commits
• Para finalmente enviar um Push e um Pull Request
• Lembre-se que todo o histórico de commits será enviado para o repositório principal
• Se você quiser limpar um pouco os comentários dos commits poderá usar “squash”. Isto facilita a
revisão do PR (https://git-scm.com/book/pt-br/v1/Ferramentas-do-Git-Reescrevendo-o-Hist%C3%B3rico)
• Por favor coloque comentário no seu commit, mas um que faça sentido! De preferência vincule com
uma #issue
www.gotaskfly.com
• Terminei e agora ?
• Manda um PR...
• E quando dá conflito, o que fazer ?
• E quando tudo está certo ?
www.gotaskfly.com
• Integra suas alterações na branch
• Deu conflito, e agora ?
• Em um projeto colaborativo, isto vai ocorrer em algum momento e você precisa ter uma estratégia!
• Precisa resolver o conflito, é claro! Mas com muito cuidado, pois pode haver perda de dados!
www.gotaskfly.com
• Crie um PR da branch para a master
www.gotaskfly.com
• Está com um problema ? Crie uma Issue!
• Mas seja objetivo e específico! Ninguém tem “bola de cristal”
• Tenha “labels” para identificar as issues
• Issues é o que tem para fazer no projeto!
• Quer colaborar, comece olhando as issues!
www.gotaskfly.com
• Vai publicar uma nova versão ? Crie um release!
• O release é um resumo de tudo o que foi feito naquela versão, incluindo artefatos gerados pelo
projeto!
www.gotaskfly.com
• Criei um projeto e agora tenho muita gente contribuindo!
• É hora de mudar para uma organização!
• Uma organização pode dar mais credibilidade e confiança ao projeto!
www.gotaskfly.com
• Eles orientam quem usa/participa do projeto
www.gotaskfly.com
Vamos a prática!
www.gotaskfly.com
• Crie um processo de build!
• Teste unitário elimina muito trabalho de análise de Pull Request, então faça!
• Tenha uma política de deploy / geração de releases!
• Explique o que seu projeto faz, tenha um README rico!
• Deixe claro sua política de contribuição, isto ajuda quem quer colaborar!
• Escolha a licença correta!
www.gotaskfly.com
• Github
• Git Server
• BitBucket
• Team Foundation Server / Team Services
• GitLab
www.gotaskfly.com
• Visual Studio e Visual Studio Code – www.visualstudio.com
• GitK – faz parte do pacote Git - https://git-scm.com/downloads
• SourceTree - https://www.sourcetreeapp.com/
• GitHub Desktop - https://desktop.github.com/
• E muitas outras: https://git-scm.com/download/gui/windows
• E para vários ambientes: https://git-scm.com/download/gui/linux
www.gotaskfly.com
• https://www.github.com
• https://guides.github.com
Obrigado!
Carlos dos Santos
CDS Informática Ltda.
carlos@cdsinformatica.com.br
www.carloscds.net
@cdssoftware

Mais conteúdo relacionado

PDF
Jenkins por dentro e por fora
PPTX
Treinamento interno 01 - pull requests
PPTX
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
PDF
UAI Test - Introdução Prática ao Jenkins
PDF
Comparando as Hypes - React & Vue
PPTX
Controlo de Versões Distribuído com Git - C. Augusto Proiete
PDF
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
PDF
Learn about Git - Git Tutorial
Jenkins por dentro e por fora
Treinamento interno 01 - pull requests
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
UAI Test - Introdução Prática ao Jenkins
Comparando as Hypes - React & Vue
Controlo de Versões Distribuído com Git - C. Augusto Proiete
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Learn about Git - Git Tutorial

Mais procurados (20)

PDF
Docker como super comando
PPTX
Docker para Desenvolvedores - Developers-BR - Agosto-2018
PPTX
Docker para Desenvolvedores - Developers-BR - Julho-2018
PDF
Criando Desktop Apps com Electron
PDF
Testes com xUnit + Coding Dojo
PPTX
PPTX
Engenharia ágil de ponta a ponta do clone ao deploy
PPTX
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
PPTX
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
PPTX
GitHub Actions
PPTX
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
PDF
MTC 2019 - Precisamos falar sobre teste de infra
PDF
Criando seus próprios LIVROS DIGITAIS usando Software Livre
PDF
7Masters - Devops - Do legado ao ci cd em 7 minutos
PDF
.NET 6: O que há de novo e o que está por vir?
PPTX
Introdução ao git
PPTX
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
PDF
Integração contínua com Jenkins
PPTX
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
PDF
Apresentação tdc como aproveitar os novos recursos do java ee 7
Docker como super comando
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018
Criando Desktop Apps com Electron
Testes com xUnit + Coding Dojo
Engenharia ágil de ponta a ponta do clone ao deploy
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
GitHub Actions
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
MTC 2019 - Precisamos falar sobre teste de infra
Criando seus próprios LIVROS DIGITAIS usando Software Livre
7Masters - Devops - Do legado ao ci cd em 7 minutos
.NET 6: O que há de novo e o que está por vir?
Introdução ao git
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Integração contínua com Jenkins
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Apresentação tdc como aproveitar os novos recursos do java ee 7
Anúncio

Semelhante a GitHub Boas Práticas (20)

PDF
(2015-03-14) [Grupy-SP] Projetos Open Source, como colaborar?
PDF
Github para colaboradores livres
PDF
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
PDF
GIT - Gerenciamento de Projeto e Versionamento Semântico
PDF
Minicurso GIT PET Computação
PDF
Versionamento de código em UiPath: Um guia prático.pdf
PDF
Usando Git na Unity - Gaming For All 2021
PDF
Rogue Snail Talk - Usando Git na Game Jam - WGJ
PDF
Introducao ao Git
PDF
Rogue Snail Talk - Usando Git na Game Jam - WGJ
PDF
Git e a importância de versionar um projeto
PDF
Aula de git luiza code - Slides git e github
PDF
Workshop - Git: Desmistificando o Gerenciamento de Código
PDF
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
PDF
Intervalo técnico Git/SVN
KEY
Como colaborar com projetos opensource com o GitHub
PPT
Git e GitHub - Conceitos Básicos
PDF
Git workshop
PPTX
Conhecendo o git.
PDF
GitHub_versao2024-githubGitHub_versao2024-github
(2015-03-14) [Grupy-SP] Projetos Open Source, como colaborar?
Github para colaboradores livres
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
GIT - Gerenciamento de Projeto e Versionamento Semântico
Minicurso GIT PET Computação
Versionamento de código em UiPath: Um guia prático.pdf
Usando Git na Unity - Gaming For All 2021
Rogue Snail Talk - Usando Git na Game Jam - WGJ
Introducao ao Git
Rogue Snail Talk - Usando Git na Game Jam - WGJ
Git e a importância de versionar um projeto
Aula de git luiza code - Slides git e github
Workshop - Git: Desmistificando o Gerenciamento de Código
Controle de Versão com Git e como Otimizar seu Workflow com Git Flow
Intervalo técnico Git/SVN
Como colaborar com projetos opensource com o GitHub
Git e GitHub - Conceitos Básicos
Git workshop
Conhecendo o git.
GitHub_versao2024-githubGitHub_versao2024-github
Anúncio

Mais de CDS (20)

PPTX
Web App Container
 
PPTX
Gerenciamento de Memória
 
PPTX
Azure DevOps Pipeline
 
PPTX
Azure Functions Spanish
 
PPTX
C Sharp - Gerenciamento de Memória
 
PPTX
Visual Studio Code
 
PPTX
MVPConf - Azure Functions
 
PPTX
Microsoft Operations Management Suite - OMS
 
PPTX
Voce se preocupa com performance ou é sempre problema da infra
 
PPTX
Criando infraestrutura de Azure com Fluebn API e C#
 
PPTX
C# 7
 
PPTX
SonarQube
 
PPTX
Microsoft opensource
 
PPTX
.Net Core - Visão Geral
 
PPTX
Raspberry PI
 
PPTX
Sonarqube
 
PPTX
Microsoft opensource
 
PPTX
Application Insights
 
PPTX
Palestra Roslyn - TechEd 2015
 
PPTX
Microsoft Azure Overview
 
Web App Container
 
Gerenciamento de Memória
 
Azure DevOps Pipeline
 
Azure Functions Spanish
 
C Sharp - Gerenciamento de Memória
 
Visual Studio Code
 
MVPConf - Azure Functions
 
Microsoft Operations Management Suite - OMS
 
Voce se preocupa com performance ou é sempre problema da infra
 
Criando infraestrutura de Azure com Fluebn API e C#
 
C# 7
 
SonarQube
 
Microsoft opensource
 
.Net Core - Visão Geral
 
Raspberry PI
 
Sonarqube
 
Microsoft opensource
 
Application Insights
 
Palestra Roslyn - TechEd 2015
 
Microsoft Azure Overview
 

Último (11)

PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Design - Introdução a Gestalt e teoria das formas
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Utilizando code blockes por andre backes
PPTX
Eng. Software - pontos essenciais para o início
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Tipos de servidor em redes de computador.pptx
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Arquitetura de computadores - Memórias Secundárias
Design - Introdução a Gestalt e teoria das formas
Viasol Energia Solar -Soluções para geração e economia de energia
Utilizando code blockes por andre backes
Eng. Software - pontos essenciais para o início
Manejo integrado de pragas na cultura do algodão
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Tipos de servidor em redes de computador.pptx

GitHub Boas Práticas

  • 1. Uso e Boas Práticas em Projetos Open Source www.cdsinformatica.com.br
  • 2. • Mais de 25 anos de experiência no desenvolvimento de software • Responsável por Pesquisa e Desenvolvimento na CDS Informática • Microsoft MVP desde 2008 • Microsoft Regional Director • Um dos criadores do projeto open source CodeCracker: www.github.com/code-cracker • Mantenedor do projeto open source BoletoNet: www.github.com/boletonet • Blog: www.carloscds.net • GitHub: www.github.com/carloscds
  • 3. www.gotaskfly.com • Serviço de controle de versão de arquivos • Mas não somente isto... • Um dos maiores repositórios de código open source • Gratuito para repositórios públicos, mas permite privados também • Oferece uma dinâmica excelente para trabalho em equipe • Permite versionamento offline e sincronização online • Permite várias versões do projeto simultaneamente
  • 9. www.gotaskfly.com • Readonly: • Só vou baixar e usar! • Folgado: • Fica achando que o projeto tem um suporte 24x7 • Às vezes fica bravo porque alguém não resolveu na hora! • Colaborador: • Vai usar e também enviar o que melhorar de volta • Criador: • Cria, compartilha, colabora, ajuda!
  • 11. www.gotaskfly.com Sabe o que eu mais ouço quando alguém quer trabalhar um projeto que está no GitHub ?
  • 16. www.gotaskfly.com • [Fork] – copie para sua conta! • Branch • Commit / Push • Pull Request • Review • Deploy • Merge
  • 17. www.gotaskfly.com • É uma cópia do repositório para sua conta • Se for colaborar no projeto, faça um fork, isto permite que você trabalhe “isolado”, podendo enviar suas alterações através de um Pull Request (PR) • Só não esqueça de atualizar seu repositório, afinal o projeto principal está “andando”! • No seu repositório, você pode fazer qualquer tipo de operação, o que pode não ser possível no principal
  • 18. www.gotaskfly.com • É um “nome/label” para uma alteração ou funcionalidade • Pode ser utilizado para criar ambientes e também versões • Mas isto dá muito trabalho, vamos fazer direto na master!!! • Jamais trabalhe na branch master!!!
  • 19. www.gotaskfly.com • Uma das grandes vantagens do Git é o versionamento local • Isto quer dizer que você pode fazer um Clone de um projeto e trabalhar localmente, fazendo e desfazendo diversos commits • Para finalmente enviar um Push e um Pull Request • Lembre-se que todo o histórico de commits será enviado para o repositório principal • Se você quiser limpar um pouco os comentários dos commits poderá usar “squash”. Isto facilita a revisão do PR (https://git-scm.com/book/pt-br/v1/Ferramentas-do-Git-Reescrevendo-o-Hist%C3%B3rico) • Por favor coloque comentário no seu commit, mas um que faça sentido! De preferência vincule com uma #issue
  • 20. www.gotaskfly.com • Terminei e agora ? • Manda um PR... • E quando dá conflito, o que fazer ? • E quando tudo está certo ?
  • 21. www.gotaskfly.com • Integra suas alterações na branch • Deu conflito, e agora ? • Em um projeto colaborativo, isto vai ocorrer em algum momento e você precisa ter uma estratégia! • Precisa resolver o conflito, é claro! Mas com muito cuidado, pois pode haver perda de dados!
  • 22. www.gotaskfly.com • Crie um PR da branch para a master
  • 23. www.gotaskfly.com • Está com um problema ? Crie uma Issue! • Mas seja objetivo e específico! Ninguém tem “bola de cristal” • Tenha “labels” para identificar as issues • Issues é o que tem para fazer no projeto! • Quer colaborar, comece olhando as issues!
  • 24. www.gotaskfly.com • Vai publicar uma nova versão ? Crie um release! • O release é um resumo de tudo o que foi feito naquela versão, incluindo artefatos gerados pelo projeto!
  • 25. www.gotaskfly.com • Criei um projeto e agora tenho muita gente contribuindo! • É hora de mudar para uma organização! • Uma organização pode dar mais credibilidade e confiança ao projeto!
  • 26. www.gotaskfly.com • Eles orientam quem usa/participa do projeto
  • 28. www.gotaskfly.com • Crie um processo de build! • Teste unitário elimina muito trabalho de análise de Pull Request, então faça! • Tenha uma política de deploy / geração de releases! • Explique o que seu projeto faz, tenha um README rico! • Deixe claro sua política de contribuição, isto ajuda quem quer colaborar! • Escolha a licença correta!
  • 29. www.gotaskfly.com • Github • Git Server • BitBucket • Team Foundation Server / Team Services • GitLab
  • 30. www.gotaskfly.com • Visual Studio e Visual Studio Code – www.visualstudio.com • GitK – faz parte do pacote Git - https://git-scm.com/downloads • SourceTree - https://www.sourcetreeapp.com/ • GitHub Desktop - https://desktop.github.com/ • E muitas outras: https://git-scm.com/download/gui/windows • E para vários ambientes: https://git-scm.com/download/gui/linux
  • 32. Obrigado! Carlos dos Santos CDS Informática Ltda. carlos@cdsinformatica.com.br www.carloscds.net @cdssoftware