git init
echo 'I am foo' > foo.txt
git add foo.txt # this woould create a git commit object
echo ' I am foo2' > foo.txt
git add foo.txt # this would create another git commit object
git commit -m 'doe' # this would create two git
# objects: one commit object and one tree object
Comment obtenir une liste des 4 validations SHA1_HASH?liste de tous les commits SHA1_HASH
cd .git/objects
ls
(master)$ ls -al
total 0
drwxr-xr-x 8 nsingh staff 272 Mar 27 16:44 .
drwxr-xr-x 13 nsingh staff 442 Mar 27 16:44 ..
drwxr-xr-x 3 nsingh staff 102 Mar 27 16:44 37
drwxr-xr-x 3 nsingh staff 102 Mar 27 16:43 a2
drwxr-xr-x 3 nsingh staff 102 Mar 27 16:44 e1
drwxr-xr-x 3 nsingh staff 102 Mar 27 16:42 e6
drwxr-xr-x 2 nsingh staff 68 Mar 27 16:42 info
drwxr-xr-x 2 nsingh staff 68 Mar 27 16:42 pack
Je peux trouver la liste de tous les 4 commits en regardant le fichier ici, mais il doit y avoir une meilleure façon.
Vous vous méprenez également sur la création de quatre objets de validation. Tout 'git add' est de vérifier les choses dans l'index. Vous avez seulement créé un commit, quand vous avez lancé 'git commit'. Et vous n'avez certainement pas besoin de savoir quel est le SHA1 de l'arbre pour ce commit, mais si vous mourez d'envie de le savoir, vous pouvez utiliser 'git log --pretty =% T' pour le voir. – Cascabel
Les objets que vous avez créés en faisant tout ceci sont: un commit (à partir de git commit), un arbre (l'arbre de ce commit), et un blob (le contenu de foo.txt). La première paire echo/add n'a pas d'effet durable, car vous l'avez écrasée avec la paire suivante. – Cascabel
Pour en savoir plus sur les internes, essayez peut-être le livre de la communauté git: http://book.git-scm.com/1_the_git_object_model.html ou pro git: ttp: //progit.org/book/ch9-2.html (parmi beaucoup d'autres) – Cascabel