O documento apresenta uma introdução ao Git, incluindo sua história, características, vantagens e desvantagens em comparação a sistemas centralizados. Apresenta também os principais comandos do Git e uma sugestão de uso de feature branches.
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?
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