theme | transition | title | enableMenu | enableSearch | enableChalkboard | slideNumber |
---|---|---|---|---|---|---|
serif |
slide |
Git por debaixo dos panos |
true |
false |
true |
true |
Luís Antônio
- Ponteiros
- Git do dia a dia
- 3 Áreas do git
- Objetos git
- Funcionamento interno
- Branch e merge
- Prática
[...] um ponteiro ou apontador é um tipo de dado [...], cujo valor se refere diretamente a um outro valor alocado em outra área da memória.
Wikipedia
Área do dia a dia
A partir daqui temos a benção do pai git
Tudo que existe dentro da temida pasta /.git
NÃO Tenha medo das strings SHA1
- commit
- tree
- blob
- Autor
- Mensagem
- Ponteiro para uma Tree
- Ponteiro para o pai
- É um print (snapshot) do estado atual
- Ponteiros para blob
- Ponteiros para outra Tree
- Abstrai nossas pastas
- Dados em si
- Não possui metadados
O git é, essencialmente, um banco de dados de ponteiros. Ou ainda, um grafo direcionado acíclico
Um ponteiro que aponta para a branch atual
A função SHA1 usa a função de hash criptográfica SHA1 para converter uma string de comprimento variável em uma string de 40 caracteres
- Unico
- Alta entropia
- Dois inputs iguais geram o mesmo resultado
- File => SHA1 =>
0b064b56112cc80495ba59e2ef63ffc9e9ef0c77
- Storage:
.git/objects/0b/064b56...
- Meu repositório possui apenas 3 arquivos, localizados em:
test-utils.tsx
/login/functions.ts
/login/ListSpaceModal/styles.ts
Durante a manhã mexi em todos os 3 arquivos e fiz um commit com todas as alteações
test-utils.tsx
/login/functions.ts
/login/ListSpaceModal/styles.ts
Na parte da tarde eu fiz alterações apenas no arquivo de estilos dentro de ListSpaceModal
/login/ListSpaceModal/styles.ts
A noite, final do expediente eu só mudei algo nos meus testes, mudei apenas o arquivo test-utils
- test-utils.tsx
Uma branch é um ponteiro que aponta para o último commit em um dado contexto
Stackoverflow Blog
O ponteiro é movido para o último commit automaticamente
- Uma mesclagem começa com o Git localizando o commit comum do qual as ramificações de mesclagem divergiram mais recentemente.
- O Git então calcula dois diffs
- Para formar o commit do merge, o Git aplica os dois diffs à base do merge.
- O Git primeiro descobre que a base de mesclagem.
- O Git então calcula o diff de C até G(porque G é master) e o diff de C até Z (porque Zé otherbranch).
- O Git então aplica ambos os diffs à C simultaneamente — e confirma o resultado em master.
- Agora a branch master aponta para o commit de merge, o qual possui dois pais
- Linkedin: Luís Santiago
- GitHub: luis-antonio-dev
- Instagram: dev__luis