Git'te büyük / küçük harf duyarlılığı


84

Git ile ilgili bir sorunla karşılaştım. Temel olarak core.ignorecase, bazı klasörlerin adlarının büyük / küçük harf durumunu değiştirmek istediğim için yanlış olarak ayarladım (büyük / küçük harfe duyarlı olmayan bir dosya sistemine sahip OSX altında olduğum için, değişiklikler başka türlü gösterilmedi). Verilerimi aldığımda, artık yeniden adlandırılmış her klasörün arşivde hem eski hem de yeni adla iki kez göründüğünü fark ettim. Yerel olarak görünmedikleri için eski klasörleri kaldırmak için ne yapacağımı bilmiyorum ( core.ignorecasetekrar doğru olarak ayarlamaya çalıştım ama yardımcı olmuyor).


1
Belki bir görüntü üzerinde ext3 dosya sistemi oluşturabilir, onu bağlayabilir ve bu büyük / küçük harfe duyarlı dosya sistemini çekebilirsiniz.
André Puel 18'12

@ AndréPuel iyi, aslında 'daha kolay' bir şey arıyordum. : P ama tavsiye için teşekkürler, başka çözümler bulamazsam bunun için gideceğim.
entropid

Yanıtlar:


126

Bir msysgit sorununda bu yoruma benzer bir geçici çözüm olabilir (başka bir büyük / küçük harfe duyarlı olmayan işletim sistemi için: Windows) yardımcı olabilir mi?

Aynı sorunla karşılaştım. Eclipse'de bir paket adı yeniden düzenlendi ve klasör adının geri alınmaması nedeniyle önceki bir yapıya geçiş bozuldu. Windows 7, Git 1.7.0.2.msysgit.0 kullanıyorum

Klasörüm Windows'ta " folder" olarak yeniden adlandırıldı, ancak FolderGit'te " " olarak görüntülendi .
Sorunu FolderWindows'ta " " olarak yeniden adlandırıp ardından şunu çalıştırarak düzelttim :

git mv "Folder" "Folder2"
git mv "Folder2" "folder"

Git 2.0.1'den (Haziran 2014) bu yana, git mv Folder foldersadece çalışması gerektiğini unutmayın!

Bkz. " Git: Dosya adlarının büyük harf kullanımını değiştirme "


1
Bu şekilde yeniden adlandırırken ikinci yeniden adlandırma işleminin çoooook uzun sürebileceğini fark ettim . Cevap sabırlı olmaktır; klasör eninde sonunda yeniden adlandırılır, ardından onu gerçekleştirebilirsiniz.
NathanAldenSr

Aynısını almanın başka bir yolu, "Klasör" ü "Klasör2" olarak yeniden adlandırmak ve bir işlem yapmak ve ardından "Klasör2" yi "klasör" olarak değiştirmek ve son kaydı değiştirmektir.
DaniCE

@DaniCE Cevabı yeni düzenledim: git 2.0.1 ile bu çok daha basit olmalı.
VonC

22

MacOS'ta aşağıdaki komutu kullanın. Bu, git yapılandırmanızı dosya adlarında büyük / küçük harfe duyarlı olacak şekilde değiştirir.

git config core.ignorecase false

Bunu genel olarak aşağıdaki gibi düzenleyip ~/.gitconfigayarlayarak ayarlayabilirsiniz core:

[core]
    ignoreCase = false

Git'in bir vaka yeniden adlandırma içeren bir yeniden ödeme yapmayı başarması için tam tersini yaptım. Teşekkürler!
sorin

21

Büyük / küçük harfe duyarlı bir dosya sistemi ile bir disk görüntüsü (tercihen ayrık bir disk görüntüsü) oluşturabilir ve git deponuzu buradan kontrol edebilirsiniz.

Aşağıdaki Disk İzlencesi ekran görüntüsü, büyük / küçük harfe duyarlı bir disk görüntüsünün nasıl oluşturulacağını gösterir.

Disk Yardımcı Programı Ayarları


Bu soruna ve büyük / küçük harf duyarlılığından kaynaklanan diğer gizemlere çok daha iyi, kalıcı bir çözüm. Disk görüntüsünü yaptım; eski Git depolarımı içine kopyaladı; tüm git depolarımı yeni, seyrek paket sürümüne sakladığım yerden sembolik bir bağlantı kurdu. Bununla bir daha asla karşılaşmamak için normal iş akışına geri dönün.
jwd630

Bu şekilde oluşturulan disk çok çok yavaştır.
Minqi Pan

1
@MinqiPan, ben de aynı endişeye sahiptim, ancak bir APFS birimi oluşturuyorsanız olmamalı. APFS birimleri aynı "kapsayıcı" bölümünde bulunabilir , bu nedenle performans kesintisi olmaz.
Victor Sergienko

12

Mac OS X varsayılan olarak "büyük / küçük harfe duyarlı değildir ancak büyük / küçük harf korumalıdır". Bu önemli bir ayrımdır.

Başka bir disk görüntüsü oluşturmanızı ve özellikle "HFS Büyük / Küçük Harfe Duyarlı" olarak biçimlendirmenizi öneririm.


Bahşiş için teşekkürler, ancak yukarıdaki yazı her şeyi çözdü!
entropid

7
Maalesef birçok kötü yazılım (tabii ki Adobe) varsayılan bozuk OSX dosya sistemine dayanmaktadır. Dikkatli olmak.
Jim Stewart


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.