2010-10-13 28 views
46

Düzenleyicim kaynak dosyalarının satır sonlarını değiştiriyor. git diff yaptığımda, aynı satırı iki kez görüyorum - bir kez - ile ve bir kez + ile - görünür bir fark olmadan.git diff - satır sonu değişiklikleri gösterilsin mi?

Bu değişikliğin gerçekte ne olduğunu göstermek için git diff nasıl edinebilirim?

cevap

5

Grafiksel bir araç, değişikliği daha iyi gösterecektir - git difftool'u deneyin.

meld kullanın ve boşlukları göstermek için tercihleri ​​ayarlayın. (Düzenle -> Tercihler -> Boşluğu Göster.)

Diğer grafik araçları muhtemelen benzer seçeneklere sahiptir - @ Cotton'un yanıtı + yorumu, vimdiff ile bunun nasıl yapılacağını anlatır.

+0

Grafiksel bir araç mevcut [email protected] Paul-whittaker tarafından verilen cevap, sorunun (bazı terminaller) ima ettiği bağlamda çalışacaktır. – beOn

44

İlk olarak, (örneğin git diff --color ile) renkli çıktısını kullanarak ve (örneğin) ile boşluk vurgulama etkinleştirdiğinizden emin emin olun

git config color.diff.whitespace "red reverse" 

Bu şekilde, ancak, her durumda işe yaramayabilir , kaldırıldı satırlarının sonundaki boşluk vurgulamak için görünmez. Sildiğiniz boşluk görmek için, sadece

git diff -R 

vurgulanır olsun demek karşılaştırma ait 'eklendi' tarafında boşluk koymak için kullanın.

Daha fazla ayrıntı için, this SO question adresindeki yanıtlara bakın.

+0

Bu gerçek cevap, itiraf etmeliyim ki, bunun yerine yeni satırdaki kırmızı alanı görmek komik. Teşekkürler! – zeh

5
git diff --ws-error-highlight=new,old 

değişmiş satırlardaki boşluk farklarını vurgulamaktadır. boşluk değişiklikleri görmek için

6

Tek yönlü Bu tümüyle beyaz çizgileri her yerde değiştirir vurgular

git diff --color --word-diff-regex=. 

ile bir karakteri-by-karakteri "kelimesi fark" yapmaktır. Kaldırılan boşluk [- ve -] ile sarılır ve boşlukları {+ ve +} olarak eklenir. Alternatif olarak

, suggested by Alex olarak

git diff --color --ws-error-highlight=new,old 

vurgular hatları arasında uçlarında her boşluk değişir.

7

Aşağıdaki komutla satır sonu farkını görebilirsiniz. Sonra

git diff | cat -v 

"^ M" CRLF (DOS) biten, biten LF (Unix) için hiçbir şey için basılır.

Açıkçası, git diff doğru şeyi yapıyor, CRLF sonu için CR ve LF karakterleri basıyor. Ancak CR konsolu tarafından tüketildiğinden, onu göremeyiz. Cat -v kullanarak, onu görünür hale getirebiliriz.