SORU
3 Kasım 2010, ÇARŞAMBA


Git dizini TAM olarak ne içerir?

Git dizini tam olarak ne komut dizin içeriğini görebilir miyim? ne içerir


güncelleme

Tüm cevaplar için teşekkürler. Endeks toplanma bölgesi olarak hareket ettiğini biliyorum, Ve kararlıdır ne dizini yerine çalışma ağacında. Sadece bir dizin nesnesi oluşur ne olacak merak ediyorum. /Directory_name, SHA-1 Çift Dosya listesi olabilir sanırım, sanal ağacı gibi olabilir? Ve eğer, git terminolojisini varsa, herhangi birsıhhi tesisatdizin içerik listesi için kullanabileceğim bir komut?

CEVAP
3 Kasım 2010, ÇARŞAMBA


Git kitap what an index includes ile ilgili bir makale içerir:

Endeks bir ikili dosya (genellikle tutulur .git/index) içeren bir sıralama listesi yol adları, her ile izinleri ve SHA1 bir blob nesne; git ls-files olabilir göstermek içindekiler dizini:

$ git ls-files --stage
100644 63c918c667fa005ff12ad89437f2fdc80926e21c 0   .gitignore
100644 5529b198e8d14decbe4ad99db3f7fb632de0439d 0   .mailmap

Racy git problem bu yapıyı biraz daha ayrıntı verir:

Endeks gıt en önemli veri yapılarından biridir.
Yollar ve nesne isimleri kayıt ile devlet sanal çalışma ağaç listesini gösterir ve bir sonraki ağaca yazmak için toplanma bölgesi işlenmesi nesnesi olarak hizmet vermektedir.
Devlet" ille de gerekmez, ve sık sık değil, bir anlamda, işçi ağaç. dosyaları maçı "sanal


Daha fazla görmek cf. "git/git/Documentation/technical/index-format.txt":

Gıt dizin dosyası biçimi aşağıdaki gibidir

Tüm çift sayıları ağ bayt sırası.
Sürüm 2aksi belirtilmediği sürece, burada anlatılan

  • 12 baytlık oluşan başlık:
    • 4-baytimza:
      İmza.{ 'D', 'I', 'R', 'C' } ( açılımı "dircache")
    • 4-baytsürüm numarası:
      Geçerli desteklenen sürümleri 2, 3 ve 4.
    • 32-bit dizin giriş sayısı.
  • Sıralanmış bir diziindex entries.
  • Uzantıları:
    Uzantıları imza ile tanımlanır.
    İsteğe bağlı uzantıları varsa Git onları anlamak değilse göz ardı edilebilir.
    Git şu anda önbelleğe alınan ağaç destekler ve geri uzantıları gidermek.
    • 4-bayt uzantısı imzası. Eğer ilk bayt 'A'..'Z' uzantısı isteğe bağlıdır ve göz ardı edilebilir.
    • 32-bit uzantısı boyutu
    • Uzantısı veri
  • 160-bit SHA-1 checksum önce bu dizin dosyasının içeriği üzerinde.

18* comments*:

Eğer endeks önümüzdeki işlemeye hazır olduğu yer ise, neden "11 **" dönüş tamamlamak sonra hiçbir şey gelmiyor mu?

ÇünküEndeksi takip edildiğini gösterirbir taahhüt sonra, izleniyor ne son tamamlama aynıdır doğru , ve (git diff --cached hiçbir şey döndürür).

git ls-files -s tüm dosyalar (nesne adı, çıkış modu bit ve sahne numarası) takip listeler.

Bu liste (elemanın izlenen) bir içeriği işlemek ile başlatıldı.
Şube geçtiğinizde, dizin içeriğini sadece geçti Şubesi tarafından başvurulan işlemek için sıfırlanır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Git

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Gigawipf

    Gigawipf

    18 ŞUBAT 2010
  • martin shervington

    martin sherv

    7 EKİM 2011
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011