References
Talvez você tenha percebido os rótulos bem coloridos na captura de tela do GitX na página anterior. (Se não, volte e dê outra olhada. Eu espero.) Esses rótulos são o jeito que o GitX usa para mostrar referências.
Eu não quero gastar muito tempo falando o que cada cor significa, porque essa representação em particular é específica do GitX e você pode estar usando algum outro programa. Independente de como seu visualizador os represente, você precisa saber o que elas significam. (Que rufem os tambores!)
Referências são ponteiros para commits.
Referências vêm em vários sabores: branch local, branch remoto, e tag.
No disco, uma referência de branch local consiste simplesmente em um arquivo no diretório .git/refs/heads do seu projeto. Este arquivo contém o identificador de 40 bytes do commit para o qual a referência aponta... e só. O arquivo inteiro tem 40 bytes.
Você pode ter ouvido falar sobre como o Git permite "branching barato". Isso é (parte do) que eles querem dizer. Criar um branch no Git significa apenas escrever 40 bytes no disco, e é por isso que git branch foo
é tão rápido.
O que é realmente interessante sobre referências, porém, é como elas se comportam. Então, vamos em frente.
- About This Site
- Git Makes More Sense When You Understand X
- Example 1: Kent Beck
- Example 2: Git for Ages 4 and Up
- Example 3: Homeomorphic Endofunctors
- Example 4: LSD and Chainsaws
- The Internet Talks Back!
- Graph Theory
- Seven Bridges of Königsberg
- Places To Go, and Ways to Get There
- Nodes and Edges
- Attaching Labels to Nodes
- Attaching Labels to Edges
- Directed Versus Undirected Graphs
- Reachability
- Graphs and Git
- Visualizing Your Git Repository
- References ←HEAD
- The Reference Reference
- Making Sense of the Display
- Garbage Collection
- Experimenting With Git
- References Make Commits Reachable
- My Humble Beginnings
- Branches as Savepoints
- Use Your Targeting Computer, Luke
- Testing Out Merges
- Rebase From the Ground Up
- Cherry-Picking Explained
- Using 'git cherry-pick' to Simulate 'git rebase'
- A Helpful Mnemonic for 'git rebase' Arguments
- The End