Satır sonu ayarları nasıl değiştirilir


581

Satır sonlarıyla nasıl başa çıkılacağına ilişkin ayarları değiştirmeme izin verecek bir dosya veya menü var mı?

Okudum 3 seçenek var:

  1. Windows stili, Unix stili oluşturma

    Git, metin dosyalarını kontrol ederken LF'yi CRLF'ye dönüştürür. Metin dosyaları yürütülürken CRLF, LF'ye dönüştürülecektir. Platformlar arası projeler için bu, Windows'ta önerilen ayardır ("core.autocrlf", "true" olarak ayarlanır)

  2. Olduğu gibi ödeme yapın, Unix stili uygulayın

    Git, metin dosyalarını kontrol ederken herhangi bir dönüşüm gerçekleştirmez. Metin dosyaları yürütülürken CRLF, LF'ye dönüştürülecektir. Platformlar arası projeler için bu, Unix'te önerilen ayardır ("core.autocrlf", "giriş" olarak ayarlanmıştır).

  3. Olduğu gibi ödeme yapın, olduğu gibi taahhüt edin

    Git, metin dosyalarını teslim alırken veya işlerken hiçbir dönüşüm gerçekleştirmez. Platformlar arası projeler için bu seçeneğin belirlenmesi önerilmez ("core.autocrlf", "false" olarak ayarlanır)



3
Bunlardan hangisi varsayılan değerdir?
Stephen

2
Boş ver, varsayılan doğru gibi görünüyor, ki bence uygun.
Stephen

19
Aslında 3. seçeneğin daha iyi çalıştığını görüyorum. Aksi takdirde genellikle aynı platformda (Windows / Linux) hem toplu hem de sh komut dosyalarını düzenlediğimde ve bunları taahhüt ettiğimde Git otomatik olarak bir platform için satır sonlarını "düzeltir" ... Hayır, kendim olmayı tercih ederim satır sonları konusunda bilinçli ve onları olduğu gibi taahhüt / kontrol et.
JustAMartin

1
@Neutrino Bunun doğru olmasını dilerdim, ancak satır sonlarınızla uğraşan (ve bunu kapatmak için makul bir yapılandırma seçeneği sunmayan) IDE'nin bir örneği Visual Studio'dur.
Cássio Renan

Yanıtlar:


528

Bunu kontrol etmenin normal yolu git config

Örneğin

git config --global core.autocrlf true

Ayrıntılar için, bu bağlantıda Pro Git'e gidin ve "core.autocrlf" adlı bölüme gidin.


Bunun hangi dosyaya kaydedildiğini bilmek istiyorsanız, şu komutu çalıştırabilirsiniz:

git config --global --edit

git global config dosyası bir metin düzenleyicide açılmalıdır ve bu dosyanın nereden yüklendiğini görebilirsiniz.


17
trueveya falseyalnızca iki seçenek varsa, yükleyicinin üçü vardır
qwertymk

49
input3. seçenektir (sağladığım bağlantıda belirtildiği gibi). 3 seçenek true| false| input
Kodlama:

2
İşte konuyla ilgili başka bir iyi SO sorusu: stackoverflow.com/questions/3206843/…
CodingWithSpike

31
Aslında, kendi sorunuzu tekrar okursanız, kopyalanan / yapıştırılan alıntılarda: "1 ... ("core.autocrlf" is set to "true") ... 2 ... ("core.autocrlf" is set to "input") ... 3 ... ("core.autocrlf" is set to "false")"temel olarak kendi sorunuzu cevapladınız mı? :)
KodlamaWithSpike

2
Bu, etrafta dolaşmanın eski yoludur. .Gitattributes dosyasına bakın.
eftshift0

176

İşletim sisteminde kullanılan satır sonu biçimi

  • Windows: CR( Satır Başı ) \rve LF(LineFeed \n) çifti
  • OSX, Linux: LF(LineFeed \n)

Git'i her işletim sistemi için satır sonlandırma biçimlerini iki şekilde otomatik olarak düzeltecek şekilde yapılandırabiliriz.

  1. Git Global yapılandırması
  2. .gitattributesDosya kullan

Global Yapılandırma

Linux / OSX'te
git config --global core.autocrlf input

Bu, herhangi çözecektir CRLFiçin LFsize işlediklerinde.

Windows'da
git config --global core.autocrlf true

Bu pencerelerde ödeme, tüm sağlayacağız LFdönüşecektirCRLF

.gitattributes Dosyası

.gitattributesEkibimizdeki herkesin yapılandırmalarını ayarlamasını beklemek istemediğimiz için bir dosyayı saklamak iyi bir fikirdir . Bu dosya repo'nun kök yolunda kalmalı ve varsa dosya ona saygı gösterecektir.

* text=auto

Bu, tüm dosyaları metin dosyaları olarak ele alır ve ödeme sırasında biten ve LFotomatik olarak çalışmaya devam ederek işletim sisteminin satırına dönüştürür . Açıkça söylemek istersen,

* text eol=crlf
* text eol=lf

Birincisi ödeme için, ikincisi taahhüt için.

*.jpg binary

Yoldan .jpgbağımsız olarak tüm resimlere ikili dosya gibi davranın . Yani dönüşüm gerekmez.

Veya yol niteleyicileri ekleyebilirsiniz:

my_path/**/*.jpg binary

3
CRYalnız (satırbaşı) kullanan OS X ne olacak ?
jww

23
Eski MacOS (yani MacOS 9 ve öncesi) CRtek başına kullanılır , ancak OS X genellikle kullanır LF.
Zachary Ware

2
Windows'ta * text eol=lfödeme yapmak LFiçin iki kez kullanabilir miyim ?
mbomb007

1
Gitattributes dokümantasyon ayarına göre * text=autogit, içeriğin metin olup olmadığına karar verir. Tüm dosyaları metin olmaya zorlamak * textyalnızca olmalıdır .
Adrian W

eol=crMac OS 9 ve diğer eski platformlardaki dosyalar için nasıl ayarlayabilirim ?
NobleUplift

36

Tüm geliştiricilere yeniden dağıtılabilen bir havuz ayarı çözümü için, .gitattributes dosyasındaki text özniteliğine bakın . Bu şekilde, geliştiricilerin depoda kendi satır sonlarını manuel olarak ayarlamak zorunda kalmazlar ve farklı depoların farklı satır sonlandırma stilleri olabileceğinden, global core.autocrlf en azından benim görüşüme göre en iyisi değildir.

Örneğin, bu özelliğin belirli bir yolda ayarını kaldırmak [ . - metin] git'i check-in ve check-out sırasında satır sonlarına dokunmamaya zorlayacaktır. Benim düşünceme göre, bu en iyi davranıştır, çünkü çoğu modern metin editörleri her iki satır sonunu da işleyebilir. Ayrıca, bir geliştirici olarak check-in sırasında satır sonu dönüşümü yapmak istiyorsanız, yine de belirli dosyalarla eşleşecek şekilde yolu ayarlayabilir veya deponuzdaki eol özniteliğini (.gitattributes olarak) ayarlayabilirsiniz.

Ayrıca .gitattributes dosyasını ve metin niteliğini daha ayrıntılı olarak açıklayan bu ilgili gönderiye göz atın: Git ile en iyi CRLF (satır başı, satır besleme) işleme stratejisi nedir?


. - textverir is not a valid attribute name: .gitattributes:1lütfen koymakcat .gitattributes
jangorecki

3

Benim için hile ne emretti

git config auto.crlf false

proje klasörü içinde, özellikle bir proje için istedim.

Bu komut, satırları ekleyerek {project_name} /. Git / config (fyi .git gizli bir klasördür) yolundaki dosyayı değiştirdi

[auto]
    crlf = false

dosyanın sonunda. Sanırım dosyayı değiştirmek de aynı hile yapar.


1

PC biçiminden UNIX Biçimi olarak değiştirilen dosya biçimlerini geri dönüştürmek istiyorsanız.

(1) Kaplumbağa GIT'ini yeniden yüklemeniz gerekir ve "Satır Sonu Dönüşümü" Bölümünde "Olduğu gibi teslim et - Olduğu gibi teslim et" seçeneğini belirlediğinizden emin olun.

(2) ve kalan yapılandırmaları olduğu gibi saklayın.

(3) kurulum tamamlandıktan sonra

(4) UNIX biçimine dönüştürülen tüm dosya uzantılarını bir metin dosyasına (extensions.txt) yazın.

ex:*.dsp
   *.dsw

(5) dosyayı klonunuza kopyalayın GITBASH'da aşağıdaki komutu çalıştırın

while read -r a;
do
find . -type f -name "$a" -exec dos2unix {} \;
done<extension.txt
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.