Her satırda değişiklik yapmadan satırbaşlarını (^ M) belirli satırlardan çıkarma


2

Oldukça uzun C ++ dosyalarım var ve git diff --check birkaç satır başı olduğunu bildiriyor ^M yaklaşık 15 farklı hat üzerinde. Bu bir Windows 7 makinesinde. Birkaç çözüm aradıktan sonra, yani Visual Studio Advanced Save Options, veya Notepad ++ 'ın EOL Dönüşümleri, hepsi Git'in şikayet ettiğileri değil, her satırı değiştiriyor gibi görünüyor. Bu, değiştirilen her çizginin gitme farkıyla sonuçlanır.

Bu olabilir, çünkü bu dosyalarda yapılan önceki tüm değişikliklerin de satırbaşları vardı. ^M ve önceki taahhütleri, herhangi bir satırbaşı uyarısı görmezden geldi mi?

Koşu git config core.autocrlf true değerini döndürür, ancak çalıştırdığımda bir dosyayı sahnelemek hiçbir şey yapmaz git diff --cached --check evreleme sonrasında bu dosya için.

Onları kaldırmak için herhangi bir yolu var mı? Çizgiye manuel olarak gidip değişmeye çalışmak işe yaramıyor gibi görünüyor.

Yanıtlar:


0

15 satır mı?

Notepad ++ 'ta değiştirmeyi seçin. Genişletilmiş seçti. \ R (^ M olanı) arayın ve hiçbir şeyle değiştirin (yeni satır istemiyorsanız \ n ile değiştirin). ^ ^ 'Nin değiştirilmesini istemiyorsanız, hepsini değiştir seçeneğine basmayın, değiştirmek istediğinizleri seçin.

Normal pencereler not defteri kullanıyorsanız, ^ M kutuları olarak görünecektir. Kutuları kaldırabilirsiniz. Çirkin, ama işe yarıyor.


1

kullanım dos2unix <file> komut satırında eğer. İhtiyaç duyulan satır sonlarını düzeltir veya hiçbir şeye ihtiyaç duyulmazsa hiçbir şey yapmaz. Bir yap find . -name "*.cpp" -exec dos2unix {} + Birden fazla dosya yapmak için. Öyleyse karşılaştır git diff taahhütten önce.

Dosyalarda karışık satır sonları ile bitmekten kaçınmak en iyisidir. Birleşmeyi ve geçmişi takip etmeyi zorlaştırabilir.

Bazı editörler stil değiştirmeyeceklerdir, ancak bir ^ M bile dosyaya girse, bazı editörler dos stilini alacağını ve dosya yazarken tüm satır sonlarını değiştireceğini düşünüyorum.

Editörün istediğiniz stille uyumlu olmasını sağlayacak editörler için ayarları bulmak genellikle mümkündür. Satır sonu ve sekme ayarları da genellikle stile bağlı olarak ayarlanır.


1

Git bunu otomatik olarak yapabilir git config --global core.autocrlf true. Ancak ödeme zamanında veya taahhüt zamanında yapar. Bu yüzden git, sahnelenen değişiklikleri göstermeyecek, ancak editörünüzün bazı yeni istenmeyen satır sonları getirmesi durumunda sessizce ilgilenmesi gerekir.

İstenmeyen satır sonları zaten depoda ise dos2unix kullanın.

Ayrıntılar için buradaki cevaba bakınız: https://stackoverflow.com/questions/10418975/how-to-change-line-ending-settings ve OKU http://git-scm.com/book/en/Customizing-Git-Git-Configuration#Formatting-and-Whitespace


0

bir windows makinesinde örneğin:

for /r %f in (*.js) do "c:\Program Files\git\usr\bin\dos2unix.exe" %f

bu, CR'leri mevcut dizinden .js uzantılı tüm dosyalardan kaldıracak

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.