SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
GIT DESDE O INÍCIO
Insights e dicas poderosas de uso
Thiago dos Santos
• Casado
• Pai de dois
• Desenvolvedor de software
• Trabalho com tecnologias web e Microsoft há mais de 8 anos
• Gosto de arquitetura de software
• Entusiasta de investimentos
• Gamer quase nunca em horas raras
Quem sou eu?
/in/thiago-santos-dev
• História do GIT
• VCS distribuído x Centralizado
• Vantagens
• Desvantagens
• Quando utilizar?
• Principais comandos
• Sugestão de uso com feature branchs
• Hands on
AGENDA
HISTÓRIA DO GIT
Criado por
• Criado em 2005 por Linus Torvalds para o desenvolvimento do Linux
• Concebido para coordenar o trabalho entre programadores
• Inspirado no SCM Bitkeeper
HISTÓRIA DO GIT
GIT É CONSIDERADO UM INSULTO DE
ORIGEM INGLESA
desagradável, incompetente, irritante...
• Rápido (muito rápido) e escalável
• Desenhado do ponto de vista do filesystem
• Compatibilidade com protocolos existentes
• HTTP
• FTP
• SSH
• Escrito majoritariamente em C
• Costumizável (aliás)
CARÁCTERÍSTICAS
óbvio
• Repositório centralizado no server
• Lento
• Oneroso criar branches
• Todo commit é enviado ao server
• Engessado
• Conflitos constantes
Version Control System (VCS) Centralizado
• O repositório fica na máquina de cada programador
• O envio de código para a origem é flexível
• Histórico facilmente acessível
• Rastreável
• Leve
VCS Distribuído
• Rápido
• Criar branches é fácil e barato
• Merges não são (muito) traumáticos
• Alteração é fácil e rastreável
• Multi plataforma
• Integra-se facilmente com rotinas de devops
• Uso de tags para demarcar o código até aquele momento – muito
utilizado para releases
• Linha de comando
Quais as vantagens?
LINHA DE COMANDO
voltou com tudo em tudo
• Sistemas com grandes históricos podem ser difíceis de entender os
commits
• Muuuuitos comandos!
• Várias formas de fazer a mesma coisa
• Exige mudança de mindset para quem vem dos VCS’ centralizados –
principalmente SVN
• Árvore de commits principal pode ficar facilmente bagunçada e difícil
de entender
• GUI’s para o git costumam ser lentas e ocultar operações
E as desvantagens?
QUANDO UTILIZAR?
SEMPRE!
Estamos em 2019
• Branches que se derivam da master para pequenas
funcionalidades
• Ciclo de vida curto: devem ser apagadas após o merge com a
master
• Normalmente está atrelada à alguma task de
desenvolvimento
• Permite ao desenvolvedor muita flexibilidade durante o
desenvolvimento
• Pode gerar efeitos indesejáveis na árvore da branch principal
Introdução à feature branches
BRANCH EVERYWHERE
tudo é branch
NEM TUDO SÃO FLORES 
➢ git status
➢ git add
➢ git restore
➢ git commit
➢ git push
➢ git checkout
➢ git branch
➢ git pull
➢ git rebase
➢ git fetch
Principais comandos
➢ git clone
➢ git cherry-pick
➢ git blame
➢ git reset
➢ git stash
HANDS ON!
OBRIGADO! ☺
ps: mantenham suas árvores limpas, sempre ☺

Mais conteúdo relacionado

Semelhante a Git desde o inicio

Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de DesenvolvimentoAlvaro Viebrantz
 
Fisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.comFisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.comRobson Chikasawa
 
Microservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesMicroservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesGuilherme Vierno
 
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
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...tdc-globalcode
 
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Renato Groff
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsRafael Salerno de Oliveira
 
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...Renato Groffe
 
Distribua seu código
Distribua seu códigoDistribua seu código
Distribua seu códigoThiago Paes
 
Desenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações WebDesenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações WebNando Sousa
 
PDC - Engenharia - Git e Gitorious
PDC - Engenharia - Git e GitoriousPDC - Engenharia - Git e Gitorious
PDC - Engenharia - Git e Gitoriousslides_teltools
 
.NET, Microsoft Azure e Tecnologias Open Source - Americana Tech Conf - Novem...
.NET, Microsoft Azure e Tecnologias Open Source - Americana Tech Conf - Novem....NET, Microsoft Azure e Tecnologias Open Source - Americana Tech Conf - Novem...
.NET, Microsoft Azure e Tecnologias Open Source - Americana Tech Conf - Novem...Renato Groff
 
Fluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitFluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitBruno Ricardo Siqueira
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Renato Groffe
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreRodrigo Kono
 
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
 
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
 

Semelhante a Git desde o inicio (20)

Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de Desenvolvimento
 
Fisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.comFisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.com
 
Microservices em Python: desafios e soluções
Microservices em Python: desafios e soluçõesMicroservices em Python: desafios e soluções
Microservices em Python: desafios e soluções
 
DevOps Exame.com
DevOps Exame.comDevOps Exame.com
DevOps Exame.com
 
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
 
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
TDC2018SP | Trilha Modern Web - Blazor - C# rodando no navegador padrao, sem ...
 
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
 
Palestra sobre Git EEDACT2015
Palestra sobre Git EEDACT2015Palestra sobre Git EEDACT2015
Palestra sobre Git EEDACT2015
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
 
Distribua seu código
Distribua seu códigoDistribua seu código
Distribua seu código
 
Desenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações WebDesenvolvimento colaborativo de Aplicações Web
Desenvolvimento colaborativo de Aplicações Web
 
PDC - Engenharia - Git e Gitorious
PDC - Engenharia - Git e GitoriousPDC - Engenharia - Git e Gitorious
PDC - Engenharia - Git e Gitorious
 
Curso git-0001
Curso git-0001Curso git-0001
Curso git-0001
 
.NET, Microsoft Azure e Tecnologias Open Source - Americana Tech Conf - Novem...
.NET, Microsoft Azure e Tecnologias Open Source - Americana Tech Conf - Novem....NET, Microsoft Azure e Tecnologias Open Source - Americana Tech Conf - Novem...
.NET, Microsoft Azure e Tecnologias Open Source - Americana Tech Conf - Novem...
 
Fluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitFluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando Git
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | MVPConf Latam 2021
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
 
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...
 
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 - ...
 

Git desde o inicio

  • 1. GIT DESDE O INÍCIO Insights e dicas poderosas de uso
  • 2. Thiago dos Santos • Casado • Pai de dois • Desenvolvedor de software • Trabalho com tecnologias web e Microsoft há mais de 8 anos • Gosto de arquitetura de software • Entusiasta de investimentos • Gamer quase nunca em horas raras Quem sou eu? /in/thiago-santos-dev
  • 3. • História do GIT • VCS distribuído x Centralizado • Vantagens • Desvantagens • Quando utilizar? • Principais comandos • Sugestão de uso com feature branchs • Hands on AGENDA
  • 6. • Criado em 2005 por Linus Torvalds para o desenvolvimento do Linux • Concebido para coordenar o trabalho entre programadores • Inspirado no SCM Bitkeeper HISTÓRIA DO GIT
  • 7. GIT É CONSIDERADO UM INSULTO DE ORIGEM INGLESA desagradável, incompetente, irritante...
  • 8. • Rápido (muito rápido) e escalável • Desenhado do ponto de vista do filesystem • Compatibilidade com protocolos existentes • HTTP • FTP • SSH • Escrito majoritariamente em C • Costumizável (aliás) CARÁCTERÍSTICAS
  • 10. • Repositório centralizado no server • Lento • Oneroso criar branches • Todo commit é enviado ao server • Engessado • Conflitos constantes Version Control System (VCS) Centralizado
  • 11.
  • 12. • O repositório fica na máquina de cada programador • O envio de código para a origem é flexível • Histórico facilmente acessível • Rastreável • Leve VCS Distribuído
  • 13.
  • 14. • Rápido • Criar branches é fácil e barato • Merges não são (muito) traumáticos • Alteração é fácil e rastreável • Multi plataforma • Integra-se facilmente com rotinas de devops • Uso de tags para demarcar o código até aquele momento – muito utilizado para releases • Linha de comando Quais as vantagens?
  • 15. LINHA DE COMANDO voltou com tudo em tudo
  • 16. • Sistemas com grandes históricos podem ser difíceis de entender os commits • Muuuuitos comandos! • Várias formas de fazer a mesma coisa • Exige mudança de mindset para quem vem dos VCS’ centralizados – principalmente SVN • Árvore de commits principal pode ficar facilmente bagunçada e difícil de entender • GUI’s para o git costumam ser lentas e ocultar operações E as desvantagens?
  • 18. • Branches que se derivam da master para pequenas funcionalidades • Ciclo de vida curto: devem ser apagadas após o merge com a master • Normalmente está atrelada à alguma task de desenvolvimento • Permite ao desenvolvedor muita flexibilidade durante o desenvolvimento • Pode gerar efeitos indesejáveis na árvore da branch principal Introdução à feature branches
  • 20. NEM TUDO SÃO FLORES 
  • 21. ➢ git status ➢ git add ➢ git restore ➢ git commit ➢ git push ➢ git checkout ➢ git branch ➢ git pull ➢ git rebase ➢ git fetch Principais comandos ➢ git clone ➢ git cherry-pick ➢ git blame ➢ git reset ➢ git stash
  • 23. OBRIGADO! ☺ ps: mantenham suas árvores limpas, sempre ☺