Bir ağaç tarihinin herhangi bir noktaya bağlı olmayan dosyaları ve dizinleri, hiyerarşik bir koleksiyon. Örneğin, bir dosya oluşturup daha sonra dosyayı silerseniz (başka herhangi bir işlem olmadan), başladığınız ağaçla sonuçlanırsınız.
Bir taahhüt projenizin tarihinde bir noktadır. Bir komut bir ağacı belirtir, fakat aynı zamanda yazar / taşıt ve zaman, bir taahhüt mesajı (yazarın neyin değiştiğini açıkladığı) ve en önemlisi de havuzun önceki durumu olan sıfır veya daha fazla ebeveyn gibi diğer bilgileri içerir. (İlk taahhüdünüzün sıfır ebeveyni vardır. Bundan sonra çoğunun doğrusal gelişim sırasında bir ebeveyni ve birleştirirseniz birden fazla ebeveyni vardır.)
Bunun git cat-file -p
türden bağımsız olarak belirli bir karmanın içeriğini yazdıran komutla bunun nasıl çalıştığını anlayabilirsiniz . Örneğin, HEAD taahhüdüne bakmak için şunları çalıştırabilirsiniz:
$ git cat-file -p HEAD
tree 81ca1cb660ea79131336944df28b13b711d93557
parent 92b6b8fe9956866ace5397e060e7cc8ee1c76233
parent 7ea2575ed96d150ee19f70edea4bd42c7c2f0b83
author Mislav MarohniÄ <mislav.marohnic@gmail.com> 1436468108 -0700
committer Mislav MarohniÄ <mislav.marohnic@gmail.com> 1436468108 -0700
Merge pull request #951 from github/global-args
Avoid depending on a hardcoded list of git global flags
Bu taahhüdün içindeki ağacı görmek için ağaç olabilir cat-file -p
:
$ git cat-file -p 81ca1cb660ea79131336944df28b13b711d93557
100644 blob 730f77a3be502cfe6769c1305c0b59c22274caf5 .gitignore
100644 blob bcbd000f6b9ad5b0510f804ac4a3b19306b39c03 .travis.yml
100644 blob da71aa1fa3c3ae47b2fe5e6245ce2eea1586e278 CONTRIBUTING.md
...
Benzer şekilde, ebeveynlere bakarsanız, bunların da taahhütler olduğunu göreceksiniz. Bir iç ağaç için bir steno gibi işlemek rev
DİR rev^{tree}
. Yani bir önceki komut yazılmış olabilirdi git cat-file -p HEAD^{tree}
. Bunun rev^
ebeveyni anlamına gelir rev
. Birden anne olduğunda, rev^1
, rev^2
vb daha fazla bilgi mevcuttur git rev-ayrıştırma adam sayfası .
commit has
3. paragrafınızın başlangıcında ne anlama geliyor?