Bu iletiler, core.autocrlf
Windows'taki yanlış varsayılan değerinden kaynaklanıyor .
Kavramı, autocrlf
satı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 cr
in yukarıdaki üç seçenekten hiçbirinden etkilenmez)
Bu uyarı ne zaman görünüyor (Windows altında)
- autocrlf
= dosyalarınızdan birinde true
unix stiliniz varsa lf
(= Nadiren),
- autocrlf
= dosyalarınızdan birinde input
kazanma 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
= true
iş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
= input
a (o Unix tarzı LF ile değiştirilecektir) döngüsü-çıkış tamamlamak sonra windows tarzı CRLF kaybolur). input
Pencerelerin 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.autocrlf
Git 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/config
veya $HOME/.config/git/config
ve
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=false
sistem 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 config
ayarlar, gitattributes
ayarlar tarafından geçersiz kılınabilir .
- crlf -> lf
dönüştürme yalnızca yeni dosyalar eklenirken gerçekleşir, crlf
depoda zaten mevcut olan dosyalar etkilenmez.
Ahlaki (Windows için):
- use core.autocrlf
= true
bu 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
= false
bu 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.autocrlf
için false
.