В соответствии с этим:
Важно отметить, что это сильно отличается от большинства SCM системы, с которыми вы можете быть знакомы. Subversion, CVS, Perforce, Mercurial и тому подобное используют системы хранения Delta - они хранят различия между одной фиксацией и следующей. Git не делает это - он хранит моментальный снимок того, что все файлы в вашем проекте выглядят в этой древовидной структуре каждый раз, когда вы совершаете. Это очень важная концепция для понимания при использовании Git.
Но когда я запустил git show $SHA1ofCommitObject
...
commit 4405aa474fff8247607d0bf599e054173da84113
Author: Joe Smoe <[email protected]>
Date: Tue May 1 08:48:21 2012 -0500
First commit
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..de8b69b
--- /dev/null
+++ b/index.html
@@ -0,0 +1 @@
+<h1>Hello World!</h1>
diff --git a/interests/chess.html b/interests/chess.html
new file mode 100644
index 0000000..e5be7dd
--- /dev/null
+++ b/interests/chess.html
@@ -0,0 +1 @@
+Did you see on Slashdot that King Gambit accepted is solved! <a href="#" onclick="location.href='http://game
... он выводит разницу фиксации с предыдущими фиксациями. Я знаю, что Git не хранит diff в объектах blob, но сохраняет ли он diff в объектах commit? Или git show
динамически вычисляет diff?