Bu iletiler, core.autocrlfWindows'taki yanlış varsayılan değerinden kaynaklanıyor .
Kavramı, autocrlfsatır sonları dönüşümlerini şeffaf bir şekilde ele almaktır. Ve öyle!
Kötü haber : değerin manuel olarak yapılandırılması gerekir.
İyi haber : git kurulum başına yalnızca bir kez yapılmalıdır (proje ayarlarına göre de mümkündür).
Nasıl autocrlfçalışır :
core.autocrlf=true: core.autocrlf=input: core.autocrlf=false:
repo repo repo
^ V ^ V ^ V
/ \ / \ / \
crlf->lf lf->crlf crlf->lf \ / \
/ \ / \ / \
Burada crlf= galibiyet stili satır sonu işareti, lf= unix stili (ve mac osx).
(pre-osx crin yukarıdaki üç seçenekten hiçbirinden etkilenmez)
Bu uyarı ne zaman görünüyor (Windows altında)
- autocrlf= dosyalarınızdan birinde trueunix stiliniz varsa lf(= Nadiren),
- autocrlf= dosyalarınızdan birinde inputkazanma stiliniz varsa crlf(= neredeyse HER ZAMAN),
- autocrlf= false- ASLA!
Bu uyarı ne anlama geliyor?
Uyarı " LF CRLF ile değiştirilecektir " Eğer (sahip olduğunu söylüyor autocrlf= trueişlemek-çıkış döngüsü (o pencere tarzı CRLF yerini alacaktır) sonra unix tarzı LF kaybolur). Git, pencerelerin altında unix tarzı LF kullanmanızı beklemiyor.
Uyarı " CRLF LF ile değiştirilecektir " Eğer (sahip olduğunu söylüyor autocrlf= inputa (o Unix tarzı LF ile değiştirilecektir) döngüsü-çıkış tamamlamak sonra windows tarzı CRLF kaybolur). inputPencerelerin altında kullanmayın .
Nasıl autocrlfçalıştığını göstermenin başka bir yolu
1) true: x -> LF -> CRLF
2) input: x -> LF -> LF
3) false: x -> x -> x
burada x ya CRLF (windows tarzı) veya LF (unix tarzı) ve oklar
file to commit -> repository -> checked out file
Nasıl düzeltilir
core.autocrlfGit kurulumu sırasında varsayılan değer seçilir ve sistem genelinde gitconfig ( %ProgramFiles(x86)%\git\etc\gitconfig) içinde saklanır . Ayrıca (aşağıdaki sırayla basamaklı) var:
- adresinde bulunan "küresel" (kullanıcı başına) gitconfig ~/.gitconfig, henüz başka
- at "global" (kullanıcı başına) gitconfig $XDG_CONFIG_HOME/git/configveya $HOME/.config/git/configve
kısmındaki "Yerel" (başına repo) gitconfig - .git/configçalışma dir.
Bu nedenle, git config core.autocrlfşu anda kullanılan değeri kontrol etmek için çalışma dizinine yazın ve
- eklenti autocrlf=falsesistem genelinde gitconfig # başına sistemine çözümüne
- git config --global core.autocrlf false # kullanıcı başına çözüm
- git config --local core.autocrlf false # Herbir proje çözümü
Uyarılar
- git configayarlar, gitattributesayarlar tarafından geçersiz kılınabilir .
- crlf -> lfdönüştürme yalnızca yeni dosyalar eklenirken gerçekleşir, crlfdepoda zaten mevcut olan dosyalar etkilenmez.
Ahlaki (Windows için):
- use core.autocrlf= truebu projeyi Unix altında da kullanmayı planlıyorsanız (ve editör / IDE'nizi unix satır sonlarını kullanacak şekilde yapılandırmak istemiyorsanız),
- use core.autocrlf= falsebu projeyi yalnızca Windows altında kullanmayı planlıyorsanız ( veya düzenleyicinizi / IDE'nizi unix satır sonlarını kullanacak şekilde yapılandırdıysanız),
- iyi bir nedeniniz yoksa ( örneğin , pencerelerin altında unix yardımcı programları kullanıyorsanız veya makefiles sorunlarıyla karşılaşıyorsanız) aslacore.autocrlf = kullanmayın ,input
PS Windows için git'i yüklerken ne seçilmeli?
Unix altındaki projelerinizden hiçbirini kullanmayacaksanız , varsayılan ilk seçeneği kabul etmeyin . Üçüncü olanı seçin ( Olduğu gibi ödeme yapın, olduğu gibi işleme koyun ). Bu mesajı görmeyeceksiniz. Hiç.
PPS Benim kişisel tercih yapılandırıyor editör / IDE Unix tarzı uçlarını kullanmaya ve ayar core.autocrlfiçin false.