SlideShare uma empresa Scribd logo
1 de 32
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

Mais procurados

Docker como super comando
Docker como super comandoDocker como super comando
Docker como super comandoRafael Gomes
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Renato Groff
 
Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Renato Groff
 
Criando Desktop Apps com Electron
Criando Desktop Apps com ElectronCriando Desktop Apps com Electron
Criando Desktop Apps com ElectronEmerson Thompson
 
Testes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoTestes com xUnit + Coding Dojo
Testes com xUnit + Coding DojoLetticia Nicoli
 
Engenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployEngenharia ágil de ponta a ponta do clone ao deploy
Engenharia ágil de ponta a ponta do clone ao deployGiovanni Bassi
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Renato Groff
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Renato Groff
 
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
 Alternativas para a Implementação de Microservices no Microsoft Azure - Jane... Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...
Alternativas para a Implementação de Microservices no Microsoft Azure - Jane...Renato Groff
 
MTC 2019 - Precisamos falar sobre teste de infra
MTC 2019 - Precisamos falar sobre teste de infraMTC 2019 - Precisamos falar sobre teste de infra
MTC 2019 - Precisamos falar sobre teste de inframinastestingconference
 
Criando seus próprios LIVROS DIGITAIS usando Software Livre
Criando seus próprios LIVROS DIGITAIS usando Software LivreCriando seus próprios LIVROS DIGITAIS usando Software Livre
Criando seus próprios LIVROS DIGITAIS usando Software LivrePotiLivre Sobrenome
 
7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutosiMasters
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?Letticia Nicoli
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao gitDiogo Gomes
 
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileXamarin + TDD - Reagindo rápido à mudanças no mundo mobile
Xamarin + TDD - Reagindo rápido à mudanças no mundo mobileakamud
 
Integração contínua com Jenkins
Integração contínua com JenkinsIntegração contínua com Jenkins
Integração contínua com JenkinsHigor Nucci
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Fevereiro-2020Renato Groff
 
Apresentação tdc como aproveitar os novos recursos do java ee 7
Apresentação tdc   como aproveitar os novos recursos do java ee 7Apresentação tdc   como aproveitar os novos recursos do java ee 7
Apresentação tdc como aproveitar os novos recursos do java ee 7Denis Silva
 

Mais procurados (20)

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

Semelhante a GitHub Boas Práticas

Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorFelipe Pedroso
 
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadradoTDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadradoCezinha Anjos
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Renato Groff
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraCDS
 
Visual Studio Code
Visual Studio CodeVisual Studio Code
Visual Studio CodeCDS
 
Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022Ricardo Katz
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Renato Groff
 
Git e a importância de versionar um projeto
 Git e a importância de versionar um projeto Git e a importância de versionar um projeto
Git e a importância de versionar um projetoGuilherme Farias
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Renato Groff
 
Como colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHubComo colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHubJulio Monteiro
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Renato Groff
 
Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitMozDevz
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPCBA2012
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicaçõesRenato Groff
 
Git e boas praticas!
Git e boas praticas!Git e boas praticas!
Git e boas praticas!Vitor Silva
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 

Semelhante a GitHub Boas Práticas (20)

Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
Git para Designers
Git para DesignersGit para Designers
Git para Designers
 
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadradoTDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
TDC 2014 - SP - Bower & Robygems - Cada um no seu quadrado
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infra
 
Visual Studio Code
Visual Studio CodeVisual Studio Code
Visual Studio Code
 
Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022Kubernetes New Contributors Workshop - Brasil 2022
Kubernetes New Contributors Workshop - Brasil 2022
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
 
Git e a importância de versionar um projeto
 Git e a importância de versionar um projeto Git e a importância de versionar um projeto
Git e a importância de versionar um projeto
 
Entity framework
Entity frameworkEntity framework
Entity framework
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
Como colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHubComo colaborar com projetos opensource com o GitHub
Como colaborar com projetos opensource com o GitHub
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
Docker para Desenvolvedores .NET - .NET SP - Novembro-2018
 
Git hub and Laravel
Git hub and Laravel Git hub and Laravel
Git hub and Laravel
 
Web Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to GitWeb Training Aula 04: Introduction to Git
Web Training Aula 04: Introduction to Git
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHP
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
 
Git e boas praticas!
Git e boas praticas!Git e boas praticas!
Git e boas praticas!
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 

Mais de CDS

Web App Container
Web App ContainerWeb App Container
Web App ContainerCDS
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de MemóriaCDS
 
Azure DevOps Pipeline
Azure DevOps PipelineAzure DevOps Pipeline
Azure DevOps PipelineCDS
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions SpanishCDS
 
C Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaC Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaCDS
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure FunctionsCDS
 
Microsoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSMicrosoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSCDS
 
Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#CDS
 
C# 7
C# 7C# 7
C# 7CDS
 
SonarQube
SonarQubeSonarQube
SonarQubeCDS
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensourceCDS
 
.Net Core - Visão Geral
.Net Core - Visão Geral.Net Core - Visão Geral
.Net Core - Visão GeralCDS
 
Raspberry PI
Raspberry PIRaspberry PI
Raspberry PICDS
 
Sonarqube
SonarqubeSonarqube
SonarqubeCDS
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensourceCDS
 
Application Insights
Application InsightsApplication Insights
Application InsightsCDS
 
Palestra Roslyn - TechEd 2015
Palestra Roslyn - TechEd 2015Palestra Roslyn - TechEd 2015
Palestra Roslyn - TechEd 2015CDS
 
Microsoft Azure Overview
Microsoft Azure OverviewMicrosoft Azure Overview
Microsoft Azure OverviewCDS
 
C# 6
C# 6C# 6
C# 6CDS
 
Application Insights
Application Insights Application Insights
Application Insights CDS
 

Mais de CDS (20)

Web App Container
Web App ContainerWeb App Container
Web App Container
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de Memória
 
Azure DevOps Pipeline
Azure DevOps PipelineAzure DevOps Pipeline
Azure DevOps Pipeline
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions Spanish
 
C Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaC Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de Memória
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure Functions
 
Microsoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSMicrosoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMS
 
Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#
 
C# 7
C# 7C# 7
C# 7
 
SonarQube
SonarQubeSonarQube
SonarQube
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensource
 
.Net Core - Visão Geral
.Net Core - Visão Geral.Net Core - Visão Geral
.Net Core - Visão Geral
 
Raspberry PI
Raspberry PIRaspberry PI
Raspberry PI
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensource
 
Application Insights
Application InsightsApplication Insights
Application Insights
 
Palestra Roslyn - TechEd 2015
Palestra Roslyn - TechEd 2015Palestra Roslyn - TechEd 2015
Palestra Roslyn - TechEd 2015
 
Microsoft Azure Overview
Microsoft Azure OverviewMicrosoft Azure Overview
Microsoft Azure Overview
 
C# 6
C# 6C# 6
C# 6
 
Application Insights
Application Insights Application Insights
Application Insights
 

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