24 lines
923 B
Markdown
24 lines
923 B
Markdown
- commit: set parent to HEAD
|
|
|
|
When creating a new commit, we will use the HEAD to link the new commit to the
|
|
previous commit. We'll call the previous commit the "parent commit" and we will
|
|
save its OID in the "parent" key on the commit object.
|
|
|
|
For example, HEAD is currently bd0de093f1a0f90f54913d694a11cccf450bd990 and we
|
|
create a new commit, the new commit will look like this in the object store:
|
|
|
|
```
|
|
tree 50bed982245cd21e2798f179e0b032904398485b
|
|
parent bd0de093f1a0f90f54913d694a11cccf450bd990
|
|
|
|
This is the commit message!
|
|
```
|
|
|
|
The first commit in the repository will obviously have no parent.
|
|
|
|
Now we can retrieve the entire list of commits just by referencing the last
|
|
commit! We can start from the HEAD, read the "parent" key on the HEAD commit and
|
|
discover the commit before HEAD. Then read the parent of that commit, and go
|
|
back on and on... This is basically a linked list implemented over the object
|
|
database.
|