Skip to content

Commit 9811c54

Browse files
committed
📝 Add Git’s data and storage model
1 parent baa2aca commit 9811c54

File tree

3 files changed

+403
-16
lines changed

3 files changed

+403
-16
lines changed

docs/productive/git/advanced/internals.rst

Lines changed: 80 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,81 @@
22
..
33
.. SPDX-License-Identifier: BSD-3-Clause
44
5-
Git’s database internals
6-
------------------------
5+
Git Internals
6+
=============
7+
8+
So far, we have looked at how you can use Git to manage the different states of
9+
your code. Now we want to show you the :ref:`data <git-data-model>` and
10+
:ref:`storage models <git-storage-model>` that underlie Git.
11+
12+
Data Model
13+
----------
14+
15+
You will be able to use Git more effectively once you understand the data model.
16+
Git manages four types of data:
17+
18+
Objects
19+
~~~~~~~
20+
21+
.. include:: ../glossary.rst
22+
:start-after: start-object
23+
:end-before: end-object
24+
25+
Commit
26+
::::::
27+
28+
.. include:: ../glossary.rst
29+
:start-after: start-commit
30+
:end-before: end-commit
31+
32+
Tree
33+
::::
34+
35+
.. include:: ../glossary.rst
36+
:start-after: start-tree
37+
:end-before: end-tree
38+
39+
Blob
40+
::::
41+
42+
.. include:: ../glossary.rst
43+
:start-after: start-blob
44+
:end-before: end-blob
45+
46+
Tag
47+
:::
48+
49+
.. include:: ../glossary.rst
50+
:start-after: start-tag
51+
:end-before: end-tag
52+
53+
References
54+
~~~~~~~~~~
55+
56+
.. include:: ../glossary.rst
57+
:start-after: start-refs
58+
:end-before: end-refs
59+
60+
Index
61+
~~~~~
62+
63+
.. include:: ../glossary.rst
64+
:start-after: start-index
65+
:end-before: end-index
66+
67+
Reflog
68+
~~~~~~
69+
70+
.. include:: ../glossary.rst
71+
:start-after: start-reflog
72+
:end-before: end-reflog
73+
74+
.. _git-storage-model:
75+
76+
Storage model
77+
-------------
778

879
.. seealso::
9-
* `Commits are snapshots, not diffs
10-
<https://github.blog/open-source/git/commits-are-snapshots-not-diffs/>`_
1180
* Git’s database internals
1281

1382
* `Part I: packed object store
@@ -20,3 +89,10 @@ Git’s database internals
2089
<https://github.blog/open-source/git/gits-database-internals-iv-distributed-synchronization/>`_
2190
* `Part V: scalability
2291
<https://github.blog/open-source/git/gits-database-internals-v-scalability/>`_
92+
93+
Packfiles
94+
~~~~~~~~~
95+
96+
.. include:: ../glossary.rst
97+
:start-after: start-packfile
98+
:end-before: end-packfile

docs/productive/git/branch.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,8 @@ Delete branches
302302
* `Git Branching - Branches in a Nutshell
303303
<https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell>`_
304304

305+
.. _remote-branches:
306+
305307
Remote branches
306308
---------------
307309

0 commit comments

Comments
 (0)