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

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Windows ve macOS dosya sistemleri varsayılan olarak büyük/küçük harfe duyarlı değildir (ancak büyük/küçük harf korumadır). Linux dosya sistemlerinin çoğu büyük/küçük harfe duyarlıdır. Git, başlangıçta Linux çekirdeğinin sürüm denetim sistemi olacak şekilde oluşturulmuştu, bu nedenle kuşkusuz büyük/küçük harfe duyarlıdır.

Büyük/küçük harfe duyarlı olmayan işletim sistemiyle ilgili sorunların çoğu Windows için Git'te giderilmiş olsa da, birkaç tuhaflık kalmıştır.

Dosya ve klasör adları

Linux'ta hem "File.txt" hem de "file.txt" içeren bir Git deposunu kontrol etmek sorun değildir. Bunlar ayrı dosya adlarıdır. Windows ve macOS'ta her iki dosya da kullanıma alınırsa ikinci dosya ilkinin üzerine yazılır. İki klasör yalnızca büyük/küçük harfe göre farklılık gösterirse içerikleri büyük/küçük harfe duyarlı olmayan dosya sistemlerinde birlikte karıştırılır.

Büyük/küçük harf çakışmalarını düzeltme

Bu sorunla ilgili depoları düzeltmenin bir yolu, büyük/küçük harfe duyarlı bir ortamda kullanıma almaktır. Artık çakışmaması için dosya ve klasörleri yeniden adlandırın, ardından bu değişiklikleri depoya gönderin. Linux için Windows Alt Sistemi böyle bir ortamdır. Diğer bir yaklaşım, her çakışma için komutunu git mv -f <conflicting name> <non-conflicting name> kullanmaktır ve her iki dosya adına da tam büyük harf kullanımına dikkat etmektir.

Büyük/küçük harf çakışmalarını önleme

En başta bu durumu oluşturmaktan kaçınmak iyidir. Azure Repos, bu duruma yol açabilen gönderimleri önlemek için bir büyük/küçük harf zorlama ayarı sunar. Geliştiriciler için, dosyaları işlemek için sekme tamamlama kullanma alışkanlığını benimsemek de yardımcı olacaktır. Hem Windows hem de macOS büyük/küçük harf koruma sağladığından bu, Git'in iç bileşenlerinin dosya sisteminin kullandığı kasanın aynısını görmesini sağlar.

Dal ve etiket adları

Yalnızca büyük/küçük harf bakımından farklı olan iki dal veya etiket ('refs' olarak bilinir) oluşturabilirsiniz. Git'in iç işlevleri ve Azure DevOps Services/TFS, bunları iki ayrı ref olarak ele alır. Bir kullanıcının makinesinde Git, ref'leri depolamak için dosya sistemini kullanır. Belirsizlik nedeniyle getirmeler ve diğer işlemler başarısız olur. Her başvuru küçük bir dosyayla temsil edilir ve bir başvuru adı karakter içeriyorsa / , finalden / önceki bölümler klasörlerle temsil edilir.

Sorunlardan kaçınmanın basit yollarından biri, her zaman küçük harfli dal ve etiket adlarını kullanmaktır. Bu sorunla zaten iki dal veya etiket oluşturduysanız Azure Repos web kullanıcı arabiriminde düzeltebilirsiniz.

Dal adlarını düzeltme

Dallar sayfasında ilgili işlemeye gidin. Bağlam menüsünde "Yeni dal" seçeneğini belirleyin. Dala büyük/küçük harf çakışması olmayan yeni bir ad verin. Dallar sayfasına dönün ve çakışan dalı silin.

Etiket adları düzeltiyor

Etiket adını düzeltme adımları dallara benzer. Etiketler sayfasında etiketli işlemeye gidin. Bağlam menüsünde "Etiket oluştur"u seçin. Etikete büyük/küçük harf çakışması olmayan yeni bir ad verin. Etiketler sayfasına dönün ve çakışan etiketi silin.