İkili dosyalarla gitme işlemi sırasında, bir dosyayı başka bir değiştirmeyi, değiştirmeyi ve yeniden adlandırmayı düşünebilirsiniz. Bu, örn. foo-1.0.3.jar ile veya aşağıdaki test-vaka ile foo-1.0.1.jar değiştirirken:Git-durumu neden yeni bir ada sahip bir güncellenmiş ikili dosyayı yeniden adlandırmak gösteriyor?
$ dd if=/dev/urandom of=test.dat bs=1024 count=10
$ md5sum test.dat
8073aef704e9df13b44818371ebbcc0b test.dat
$ git add test.dat && git commit -m 'add binary file'
$ mv test.dat test2.dat
$ git rm test.dat
$ dd if=/dev/urandom of=test2.dat bs=1 count=1 conv=notrunc
$ md5sum test2.dat
21e1ac3ab9ba50c9dad9171f9de7232d test2.dat
$ git add test2.dat
Şimdi açıkça yeni içerikler (en azından kısmen) ve yeni bir adla bir dosya var .
$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# renamed: test.dat -> test2.dat
- Bunun nedeni nedir, mesela: Ancak, git bu bir yeniden adlandırma
git status
içinde gördüğü Bu iki dosya nasıl olmalı? Test2.dat tamamen farklı veriler içeriyorsa, öyle görünmüyor. - Biraz garip görünmek dışında herhangi bir dezavantajı var mı? Gerçek veriler mükemmel görünüyor; Önceki revizyonu kontrol ederken, bu rev için doğru dosyayı alırım.
Hayır, ikili dosyalar ile her zaman başarılı olmaz. test.dat, test2.dat olarak yeniden adlandırıldı ve yeni içeriğe eklendi. Git, yeniden adlandırıldığından (ve güncellendiğinden) yeniden adlandırıldığını söylüyor. – jamessan
@jamessan: git 'mv' ve afaik kullandığını bilmiyorum inode sayılarını kontrol etmiyor. Bu git isimleri saklamıyor olsa da doğru. – ThiefMaster
Oh, doğru değil, 'notrunc' dikkat etmedi! – opqdonut