git graphs, hashes, and compression, oh my
TRANSCRIPT
![Page 1: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/1.jpg)
at with Matthew McCullough
GitGraphs, Hashes, and Compression, Oh My!
© 2
012,
GitH
ub, I
nc.
![Page 2: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/2.jpg)
@matthewmccull
github.com/training
![Page 3: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/3.jpg)
![Page 4: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/4.jpg)
![Page 5: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/5.jpg)
GIT - the stupid content tracker
"git" can mean anything, depending on
your mood.
* random three-letter combination that
is pronounceable, and not actually
used by any
common UNIX command. The fact that it
is a mispronunciation of "get" may or
may not be
relevant.* stupid. contempti
ble and despicable. simple. Take your
pick from the dictionary of
slang.* "global informati
on tracker": you're in a good mood, an
d it actually works for you.
Angels sing, and a light suddenly fill
s the room.
* "goddamn idiotic truckload of sh*t":
when it breaks
Git is a fast, scalable, distributed r
evision control system with an unusual
ly rich
command set that provides both high-le
vel operations and full access to inte
rnals.
Git is an Open Source project covered
by the GNU General Public License. It
was originally
written by Linus Torvalds with help of
a group of hackers around the net. It
is currently
maintained by Junio C Hamano.
“
”
![Page 6: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/6.jpg)
2005git
![Page 7: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/7.jpg)
ArchitectureHashes
![Page 8: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/8.jpg)
centralized VCSs use sequential revision numbers
![Page 9: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/9.jpg)
Git uses a SHA-1 hash
![Page 10: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/10.jpg)
![Page 11: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/11.jpg)
40 hex characters (20 bytes)
![Page 12: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/12.jpg)
9AB223D28B1AA46EF1780B22F304982E39872C34
![Page 13: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/13.jpg)
9AB223D28B1AA46EF1780B22F304982E39872C34
<html><body>
<p>This is a test</p><img src="http://ai.com/icon.gif">
</body></html>
![Page 14: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/14.jpg)
<html><body>
<p>This is a test</p><img src="http://ai.com/icon.gif">
</body></html>
9AB223D28B1AA46EF1780B22F304982E39872C34
![Page 15: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/15.jpg)
Hashed ContentGit commits without Git
![Page 16: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/16.jpg)
# Green field project$ git init newproject$ cd newproject# ...start coding
![Page 17: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/17.jpg)
.git!"" COMMIT_EDITMSG!"" HEAD!"" MERGE_RR!"" config!"" description!"" hooks# !"" pre-commit.sample# $"" update.sample!"" index!"" info# $"" exclude!"" logs# !"" HEAD# $"" refs# $"" heads# $"" master!"" objects# !"" 54# # $"" 3b9bebdc6bd5c4b22136034a95dd097a57d3dd# !"" info# $"" pack!"" refs !"" heads # $"" master $"" tags
![Page 18: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/18.jpg)
$ printf "blob 12\000Hello World\n" | shasum
![Page 19: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/19.jpg)
ArchitectureHash Shortcuts
![Page 20: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/20.jpg)
use as little of it as is unique
![Page 21: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/21.jpg)
9AB223D28B1AA46EF1780B22F304982E39
872C34a certain commit
![Page 22: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/22.jpg)
9AB22Fa certain commit
![Page 23: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/23.jpg)
git rev-parse 9AB22Fexpand the commit ref
![Page 24: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/24.jpg)
ArchitectureStorage
![Page 25: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/25.jpg)
Typical SCMs use delta storage
![Page 26: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/26.jpg)
CVS / Subversion / darcs / Mercurial
![Page 27: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/27.jpg)
v1 v2 v3 v4
File A
File B
File C
File A
File B File B
File C
v5
File A
File BFile B
![Page 28: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/28.jpg)
v1 v2 v3 v4
File A
File B
File C
File A
File B File B
File C
v5
File A
File BFile B
Δ Δ
ΔΔ ΔΔΔ
![Page 29: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/29.jpg)
![Page 30: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/30.jpg)
Checkin
Checkin Checkin Che
ckin
Che
ckin
Che
ckin
Che
ckin
Che
ckin
Check
in
Checkin
Checkin
Delta storage gets slower as the history of a file gets longer
![Page 31: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/31.jpg)
Directed Acyclic Graph
![Page 32: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/32.jpg)
![Page 33: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/33.jpg)
Copy of the entire tree per checkin
![Page 34: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/34.jpg)
cp -r srcfolder srcfolder.prev
![Page 35: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/35.jpg)
Why?
![Page 36: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/36.jpg)
v1 v2 v3 v4
File A
File B
File C
File A
File B File B
File C
v5
File A
File BFile B
File A File A
File C File C File C
![Page 37: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/37.jpg)
v1 v2 v3 v4
File A
File B
File C
File A
File B File B
File C
v5
File A
File BFile B
File A File A
File C File C File C
![Page 38: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/38.jpg)
hard link to existing identical blobs
![Page 39: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/39.jpg)
v1 v2 v3 v4
File A
File B
File C
File A
File B File B
File C
v5
File A
File BFile B
File A File A
File C File C File C
![Page 40: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/40.jpg)
v1 v2 v3 v4
File A
File B
File C
File A
File B File B
File C
v5
File A
File BFile B
File A File A
File C File C File Cß
![Page 41: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/41.jpg)
zlib deflates each blob at commit
![Page 42: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/42.jpg)
v1 v2 v3 v4
File A
File B
File C
File A
File B File B
File C
v5
File A
File BFile B
File A File A
File C File C File C
![Page 43: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/43.jpg)
v1 v2 v3 v4
File A
File B
File C
File A
File B File B
File C
v5
File A
File BFile B
File A File A
File C File C File C
![Page 44: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/44.jpg)
zlib deflates the entire repo
![Page 45: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/45.jpg)
v1 v2 v3 v4
File A
File B
File C
File A
File B File B
File C
v5
File A
File BFile B
File A File A
File C File C File C
![Page 46: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/46.jpg)
v1 v2 v3 v4
File A
File B
File C
File A
File B File B
File C
v5
File A
File BFile B
File A File A
File C File C File C
![Page 47: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/47.jpg)
2100 MB became 205 MB
Act I
![Page 48: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/48.jpg)
ArchitectureHash relationships
![Page 49: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/49.jpg)
‣Blob‣Tree‣Commit‣Tag
![Page 50: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/50.jpg)
treetree: 7e8b1 webblob: 9ab16 index.html
a10b3 treeblob: 8d162 logo.jpgblob: 51d22 draw.js
7e8b1commit
tree: a10b3parent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the web content.
c67db
blob<html>
<body></body></html>
9ab16
blob//Some more javascriptvar renderSize
51d22
blob7D 8D B3 7F BD 12 9F E97B 78 9D 3F 5C A6 72 CB
8d162
![Page 51: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/51.jpg)
treetree: 7e8b1 webblob: 9ab16 index.html
a10b3 treeblob: 8d162 logo.jpgblob: 51d22 draw.js
7e8b1commit
tree: a10b3parent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the web content.
c67db
blob<html>
<body></body></html>
9ab16
blob//Some more javascriptvar renderSize
51d22
blob7D 8D B3 7F BD 12 9F E97B 78 9D 3F 5C A6 72 CB
8d162
![Page 52: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/52.jpg)
treetree: 7e8b1 webblob: 9ab16 index.html
a10b3 treeblob: 8d162 logo.jpgblob: 51d22 draw.js
7e8b1commit
tree: a10b3parent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the web content.
c67db
blob<html>
<body></body></html>
9ab16
blob//Some more javascriptvar renderSize
51d22
blob7D 8D B3 7F BD 12 9F E97B 78 9D 3F 5C A6 72 CB
8d162
![Page 53: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/53.jpg)
treetree: 7e8b1 webblob: 9ab16 index.html
a10b3 treeblob: 8d162 logo.jpgblob: 51d22 draw.js
7e8b1commit
tree: a10b3parent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the web content.
c67db
blob<html>
<body></body></html>
9ab16
blob//Some more javascriptvar renderSize
51d22
blob7D 8D B3 7F BD 12 9F E97B 78 9D 3F 5C A6 72 CB
8d162
![Page 54: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/54.jpg)
treetree: 7e8b1 webblob: 9ab16 index.html
a10b3 treeblob: 8d162 logo.jpgblob: 51d22 draw.js
7e8b1commit
tree: a10b3parent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the web content.
c67db
blob<html>
<body></body></html>
9ab16
blob//Some more javascriptvar renderSize
51d22
blob7D 8D B3 7F BD 12 9F E97B 78 9D 3F 5C A6 72 CB
8d162
![Page 55: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/55.jpg)
treetree: 7e8b1 webblob: 9ab16 index.html
a10b3 treeblob: 8d162 logo.jpgblob: 51d22 draw.js
7e8b1commit
tree: a10b3parent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the web content.
c67db
blob<html>
<body></body></html>
9ab16
blob//Some more javascriptvar renderSize
51d22
blob7D 8D B3 7F BD 12 9F E97B 78 9D 3F 5C A6 72 CB
8d162
![Page 56: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/56.jpg)
treetree: 7e8b1 webblob: 9ab16 index.html
a10b3 treeblob: 8d162 logo.jpgblob: 51d22 draw.js
7e8b1commit
tree: a10b3parent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the web content.
c67db
blob<html>
<body></body></html>
9ab16
blob//Some more javascriptvar renderSize
51d22
blob7D 8D B3 7F BD 12 9F E97B 78 9D 3F 5C A6 72 CB
8d162
![Page 57: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/57.jpg)
treetree: 7e8b1 webblob: 9ab16 index.html
a10b3 treeblob: 8d162 logo.jpgblob: 51d22 draw.js
7e8b1commit
tree: a10b3parent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the web content.
c67db
blob<html>
<body></body></html>
9ab16
blob//Some more javascriptvar renderSize
51d22
blob7D 8D B3 7F BD 12 9F E97B 78 9D 3F 5C A6 72 CB
8d162
![Page 58: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/58.jpg)
treetree: 7e8b1 webblob: 9ab16 index.html
a10b3 treeblob: 8d162 logo.jpgblob: 51d22 draw.js
7e8b1commit
tree: a10b3parent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the web content.
c67db
blob<html>
<body></body></html>
9ab16
blob//Some more javascriptvar renderSize
51d22
blob7D 8D B3 7F BD 12 9F E97B 78 9D 3F 5C A6 72 CB
8d162
![Page 59: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/59.jpg)
v1 v2 v3
committree: 9a87bparent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the Javascript renderingengine.
c67db
committree: b22c1parent: c67dbauthor: Timcommitter: Firdmessage:
Minor update to HTML
9bd21
committree: b22c1parent: 9bd21author: Johnnycommitter: Joemessage:
New language transations
1c2d7
![Page 60: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/60.jpg)
v1 v2 v3
committree: 9a87bparent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the Javascript renderingengine.
c67db
committree: b22c1parent: c67dbauthor: Timcommitter: Firdmessage:
Minor update to HTML
9bd21
committree: b22c1parent: 9bd21author: Johnnycommitter: Joemessage:
New language transations
1c2d7
![Page 61: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/61.jpg)
v1 v2 v3
committree: 9a87bparent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the Javascript renderingengine.
c67db
committree: b22c1parent: c67dbauthor: Timcommitter: Firdmessage:
Minor update to HTML
9bd21
committree: b22c1parent: 9bd21author: Johnnycommitter: Joemessage:
New language transations
1c2d7
![Page 62: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/62.jpg)
v1 v2 v3
committree: 9a87bparent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the Javascript renderingengine.
c67db
committree: b22c1parent: c67dbauthor: Timcommitter: Firdmessage:
Minor update to HTML
9bd21
committree: b22c1parent: 9bd21author: Johnnycommitter: Joemessage:
New language transations
1c2d7
![Page 63: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/63.jpg)
v1 v2 v3
committree: 9a87bparent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the Javascript renderingengine.
c67db
committree: b22c1parent: c67dbauthor: Timcommitter: Firdmessage:
Minor update to HTML
9bd21
committree: b22c1parent: 9bd21author: Johnnycommitter: Joemessage:
New language transations
1c2d7
![Page 64: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/64.jpg)
v1 v2 v3
committree: 9a87bparent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the Javascript renderingengine.
c67db
committree: b22c1parent: c67dbauthor: Timcommitter: Firdmessage:
Minor update to HTML
9bd21
committree: b22c1parent: 9bd21author: Johnnycommitter: Joemessage:
New language transations
1c2d7
![Page 65: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/65.jpg)
v1 v2 v3
committree: 9a87bparent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the Javascript renderingengine.
c67db
committree: b22c1parent: c67dbauthor: Timcommitter: Firdmessage:
Minor update to HTML
9bd21
committree: b22c1parent: 9bd21author: Johnnycommitter: Joemessage:
New language transations
1c2d7
![Page 66: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/66.jpg)
v1 v2 v3
committree: 9a87bparent: nilauthor: Firdcommitter: Matthewmessage:
Major refactoringof the Javascript renderingengine.
c67db
committree: b22c1parent: c67dbauthor: Timcommitter: Firdmessage:
Minor update to HTML
9bd21
committree: b22c1parent: 9bd21author: Johnnycommitter: Joemessage:
New language transations
1c2d7
![Page 67: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/67.jpg)
RELEASE_1.0 HEAD
bug979branch
commitc67db
commit9bd21
commit1c2d7
commit8c2d1
commit1bdcd
commit2daa1
![Page 68: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/68.jpg)
RELEASE_1.0 HEAD
bug979branch
commitc67db
commit9bd21
commit1c2d7
commit8c2d1
commit1bdcd
commit2daa1
![Page 69: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/69.jpg)
RELEASE_1.0 HEAD
bug979branch
commitc67db
commit9bd21
commit1c2d7
commit8c2d1
commit1bdcd
commit2daa1
![Page 70: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/70.jpg)
RELEASE_1.0 HEAD
bug979branch
commitc67db
commit9bd21
commit1c2d7
commit8c2d1
commit1bdcd
commit2daa1
![Page 71: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/71.jpg)
RELEASE_1.0 HEAD
bug979branch
commitc67db
commit9bd21
commit1c2d7
commit8c2d1
commit1bdcd
commit2daa1
![Page 72: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/72.jpg)
RELEASE_1.0 HEAD
bug979branch
commitc67db
commit9bd21
commit1c2d7
commit8c2d1
commit1bdcd
commit2daa1
![Page 73: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/73.jpg)
ArchitectureHash shortcuts
![Page 74: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/74.jpg)
commitish & treeish
![Page 75: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/75.jpg)
commitish = shorthand for commit hashes
![Page 76: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/76.jpg)
treeish = shorthand for tree hashes
![Page 77: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/77.jpg)
9AB22Fa certain commit
![Page 78: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/78.jpg)
9AB22F^one commit before a certain commit
![Page 79: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/79.jpg)
9AB22F^^two commits before a certain commit
![Page 80: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/80.jpg)
9AB22F~5five commits before a certain commit
![Page 81: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/81.jpg)
9AB223..56CD77between these two commits
![Page 82: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/82.jpg)
HEADthe most recent commit on this branch
![Page 83: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/83.jpg)
HEAD^one commit before the most recent commit
![Page 84: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/84.jpg)
HEAD~2two commits before the most recent commit
![Page 85: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/85.jpg)
HEAD..HEAD^^^between the given recent commits
![Page 86: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/86.jpg)
masterthe most recent commit on this branch
![Page 87: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/87.jpg)
master^^two commits before the most recent commit on this branch
![Page 88: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/88.jpg)
master~5five commits before the most recent commit on this branch
![Page 89: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/89.jpg)
remotes/origin/masterthe most recent commit on this remote tracking branch
![Page 90: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/90.jpg)
origin/masterthe most recent commit on this remote tracking branch
![Page 91: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/91.jpg)
The GraphVerification
![Page 92: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/92.jpg)
git fsck
![Page 93: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/93.jpg)
git verify-pack -v .git/objects/pack/FILENAME
![Page 94: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/94.jpg)
The GraphMore graph navigation
![Page 95: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/95.jpg)
master^{tree}find this commit’s tree
![Page 96: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/96.jpg)
git describe HASHfind nearest tag
![Page 97: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/97.jpg)
:/some wordscommit message that starts with
![Page 98: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/98.jpg)
REF:FILEblob spec
![Page 99: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/99.jpg)
:0:FILEindex
![Page 100: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/100.jpg)
:1:FILEcommon ancestor
![Page 101: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/101.jpg)
:2:FILEtarget
![Page 102: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/102.jpg)
:3:FILEmerging in
![Page 103: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/103.jpg)
@matthewmccull
github.com/training
![Page 104: Git Graphs, Hashes, and Compression, Oh My](https://reader034.vdocuments.net/reader034/viewer/2022051123/58a7d54b1a28ab8a7e8b528f/html5/thumbnails/104.jpg)
at with Matthew McCullough
GitGraphs, Hashes, and Compression, Oh My!
© 2
012,
GitH
ub, I
nc.