İçeriğe geç

Git Kullanımı Sırasında Çıkan “warning:LF will be replaced by CRLF in git” Mesajı

Bu yazıda benim sık sık başıma gelen bir olaydan bahsedeceğim. Hem günlük hayatımda hem de iş hayatımda sık sık farklı işletim sistemlerinde çalışmalar yapıyorum. Kişisel bilgisayarımın birinde sadece Windows varken diğerinde hem Windows hem Linux birlikte kurulu. Günlük hayatımda sürekli Linux kullanırken şirketteki bilgisayarımda Windows kullanmak zorundayım. Hâl böyle olunca proje geliştirirken bazı sıkıntılara da katlanmak zorunda kalıyorum.

Soruna gelecek olursak; Eğer GIT ile Bitbucket veya Github üzerinde proje geliştiriyorsanız ve git add README.md komutundan sonra yukarıdaki mesajla karşılaşıyorsanız bunun anlamı siz şu anda Windows işletim sistemindesiniz ve README.md dosyasının satır sonu Linux işletim sistemine göre kaydedilmiş demektir. Linux ve Windows farklı satır sonu kullandığı için GIT bunu algılıyor ve değişiklik yapacağını bize bildiriyor. Bu mesaj bir hata mesajı değil uyarı mesajıdır. Önemsemeyip işimize devam edersek başımıza büyük bir bela gelmez ama aynı dosyayı başka bir işletim sisteminde açacak olursak satır sonları doğru okunamazsa dosya içeriği birbirine girmiş gibi görünür.

İnternetten bir metin dosyası indirdiğimizde bazen tüm yazıların birbirine girdiğini, paragrafların görünmediğini ve satırların bitmeden sağa doğru uzayıp gittiğini görürüz. Bu olayın sebebi tam olarak bu satır sonu farklılığıdır. Örneğin OsX işletim sisteminde bir arkadaşınız not defterine birkaç paragraf yazı yazıp size gönderse ve siz de dosyayı Windows işletim sisteminde açsanız yazıları birbirine girmiş olarak görürsünüz. Arkadaşınız aynı bilgisayarda tekrar açtığında bende sorun yok der. Böyle bir durumda sizin de o metin dosyasını aynı şekilde görebilmeniz için işletim sisteminin dayatmalarına aldırmadan dosyayı tanıyıp ona göre yorumlayan gelişmiş bir not defteri veya başka bir çözümleyici program ile açmanız gerekmektedir. Bu gibi durumlar için ben Notepad++ kullanıyorum. Hem çok hafif hem de çok gelişmiş özellikleri var.

Biraz da teknik bilgi verecek olursak; Bir metin belgesinde satır sonuna geldiğinizde Enter tuşuna basarsanız işletim sisteminiz sizin görmediğiniz bir gizli karakter koyar ve alt satıra geçer. Windows işletim sistemi carriage return(satır başı) ve line feed(yeni satır) karakterlerini birlikte kullanır ve kısaca CRLF olarak adlandırır. Linux ve Unix işletim sistemleri ise sadece line feed(yeni satır) karakteri kullanır. Bu karakterlerle satırın orada bittiği ve yeni bir satıra geçildiği işletim sistemi tarafından anlaşılır. Dosyayı kapatıp yeniden açtığınızda o gizli karakterler sayesinde yazdığınız düzenli yazı birbirine girmeden tekrar gösterilir.

Şimdi GIT’e geri dönelim. GIT bu dosya sonu işini core.autocrlf ayarıyla kontrol ediyor. 

Eğer hem Windows hem de Linux işletim sistemlerini kullanan bir ekiple proje geliştiriyorsanız bu ayarı true olarak değiştirin. Böylelikle LF satır sonlarını otomatik CRLF’ye çevrilir.

Eğer Linux işletim sistemini kullanıyorsanız ve Windows işletim sisteminden bir dosya aldıysanız giriş sırasında dosyanın otomatik CRLF’den LF’ye dönüşmesi için sadece girişleri etkileyecek aşağıdaki komutu kullanın.

Son olarak sadece Windows kullanan biriyseniz ve ortak bir proje geliştirmiyorsanız herhangi bir dönüşüme ihtiyacınız olmadığı için bu ayarı aşağıdaki komutla kapatabilirsiniz.

 

Faydalı olması dileğiyle..

Kategori:Genelİşletim SistemleriLinuxMac OsWindows

2 Yorum

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

10 + sixteen =