2009-07-29 5 views
8

Bu, Git izleyicisinin kullandığı herhangi bir sorunla ilgili bir sorun olarak daha uygun olabilir, ancak ilk olarak bir SO onayı/açıklaması alabileceğimi düşündüm:Git, bir yeniden adlandırma olarak ekle/kaldır işleminde bulunur mu?

Bir grup yükleyici yürütülebilir dosyasını bir repo izliyorum.

Şimdi diyelim ki foo-1.0.exe zaten repoda.

Şimdi aynı dizine foo-2.0.exe dosyasını ekleyelim (git add foo-2.0.exe). Ardından, foo-1.0.exe (git rm foo-1.0.exe) kaldırırım.

Git durumunun bana bir eklenmiş dosya ve bir tane kaldırılmış dosya göstermesini bekliyorum. Bunun yerine, bu olsun: dal ustası
Değişiklik yapıldı edilecek Açık


:
(kullanım "git sıfırlama KAFASI ..." unstage kadar)
değiştirildi: foo-1.0.exe - > foo2.0.exe benim için WTF var

... Git 2.0 ila 1.0 bir güncelleme olduğunu tahmin etmek sezgisel çeşit kullanıyor ... bu mantıklı olabilir nasıl ama olabilir Bu durumda bunu yapmak istediğimi düşünmüyorum.

+1

btw, sürüm denetimini yalnızca kaynak kodu için kullanıyorum. İyi bir yapı sisteminiz olduğu sürece, yürütülebilir dosyalar tekrarlanabilir olmalıdır – yairchu

+0

Ha ha. Evet, biliyorum - bu nasıl yapılmalı. Fantezi tek tıklatmayla yapılı yapınız bu parçaların etrafında hoş karşılanmaz - bize bir on yıl verin. (Ayrıca bazı yükleyicileri üçüncü taraf uygulamalarıdır) – fakeleft

cevap

15

Git'in bir sezgisel kullandığı doğru. Git sadece içeriği izler, bu yüzden depo sadece foo-1.0.exe için kullanılır ve şimdi foo-2.0.exe vardır. Sizin durumunuzda, , tahminini varsayımını kullanarak bir yeniden adlandırılmış olabilir (artı bazı küçük değişiklikler, iki dosya muhtemelen oldukça benzer). Bu tahmin, depoda neyin kaydedildiğini etkilemeyecektir.

Yalnızca içerik izleme ve deltaları izleme felsefesi, Git'in evrim geçirmesine ve depo geçmişinde gezinmek için daha iyi ve daha iyi araçlar sağlamasına olanak tanır. Sonunda, Git, belirli bir kod parçasının evrimi, işlev veya hatta satır düzeyinde, yeniden adlandırma veya yeniden kodlama veya herhangi bir başka kod değişikliği ile izlemek için bir yol sağlayacaktır. Bu, depo bu bilgileri önceden saklamak zorunda olmadan yapılabilir.

+0

Muhtemelen Git'i otomatik olarak yeniden adlandırmak için yapılandırılmış durumdasınız ('diff.renames'). –

+0

@Jakub - beklendiği gibi çalışıyorsa, yorumunuzu yanıt olarak isteyebilirsiniz, böylece kabul edebilirim. Yakında deneyeceğim. Greg, genel içgörü için teşekkürler. – fakeleft

+0

Evet ... iyi ... benim durumumda git tamamen yanlıştır ve böyle bir şeyin nasıl olmasını engellemek gerektiğini bilmek harika olurdu. –