SORU
5 ŞUBAT 2011, CUMARTESİ


Git gerçekten başka 1 dosyasından tek bir işlevi hareketlerini takip edebilir? Eğer öyleyse, nasıl?

Birkaç kez, eğer başka bir dosya için bir dosya tek bir işlevi taşırsanız, Git onu takip eder ifadesi ile karşılaştım. Örneğin, this entry diyor ki, "Linus eğer başka bir dosya bir işlevi taşırsanız, Git, hareket karşısındaki tek işlevi tarihini anlatacağım" diyor.

Ama bilinç altı-luk tasarımın biraz var, ve bunun nasıl mümkün olduğunu anlamıyorum. Çok merak ediyorum ... Bu doğru bir ifadedir? Ve eğer, bu nasıl mümkün olabilir?

Benim anlayışım Gıt bir Damla olarak her bir dosyanın içeriğini saklayan ve her Damla içeriği ve boyutu SHA hash ortaya çıkan genel benzersiz bir kimliği vardır. Git o zaman Ağaçlar gibi klasörleri temsil eder. Herhangi bir dosya adı bilgileri Blob Ağaç için değil, ait, örneğin bir dosya yeniden adlandırma bir Blob bir Ağaç değil, bir değişiklik olarak kendini gösterir.

Eğer öyleyse bende bir dosya adı "foo" ile 20 işlevleri, ve bir dosya adında "bar" ile 5 fonksiyonları ve hareket bir işlevleri foo içine bar (sonuç 19 ve 6, sırasıyla), nasıl Gıt algılayan taşındım bu fonksiyonu bir dosyaya başka?

Anladığım kadarıyla, bu 2 yeni lekeler var (değiştirilmiş foo ve değiştirilmiş bar) neden olur. Bir diff fonksiyonu başka bir dosyadan çıkarıldığını göstermek için hesaplanmış olabileceğini fark ediyorum. Ama işlevi hakkında tarih muhtemelen foo yerine bar (otomatik değil) ile ilişkili olabilir nasıl görmüyorum.

Git Eğer gerçekten bakiçindetek dosyaları ve hesaplamablob başına işleviOlası dil) ayrıştırmak için nasıl bilmek zorundasın çünkü deli / olanaksız olurdu (ki, bu mümkün olabilir.

Yani ... bu ifade doğru değil mi? Ve eğer doğru ise, o zaman ne benim anlayış eksik?

CEVAP
19 Mayıs 2012, CUMARTESİ


Bu işlev gıt suçlama -C ile sağlanır

-C seçeneği sürücüler ayrıca ya dosyasında metin parçalarını silme maçların incelenmesini ve dosyaları aynı kümeleri üzerinde modifiye bulmak için çalışırken içine git. Ek -CC, ya -CCC taşıyabiliyorlar. Yazın git manuel sayfa sorumlusu yardımcı olur.

Git suçlama ile test repo kendiniz deneyin-C ve ait olduğu yere sadece taşınır kod bloğu orijinal dosya kökenli olduğunu görürsünüz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • RocketJump

    RocketJump

    22 ŞUBAT 2006
  • segtlim

    segtlim

    21 EKİM 2008
  • The Platform

    The Platform

    14 HAZİRAN 2006