Tüm git komutlarındaki boşlukları değiştir


26

Satır sonlarını değiştirdiğiniz zaman git'in sizi nasıl uyarması gerektiğini ya da bir dosyanın tamamını karışık hale getirmenizi engellemek için çeşitli diğer teknikleri açıklayan tonlarca site buldum. Bunun için çok geç olduğunu kabul edin - ağaç zaten dosyaların satır sonlarını değiştirmeyi taahhüt etti, bu nedenle git diffeski dosyanın çıkarılmasını ve ardından aynı içeriğe sahip yeni bir dosyanın eklenmesini gösterir.

Bir git yapılandırma seçeneği veya diffsadece bunları görmezden gelmesini söyleyen komut satırı bayrağı arıyorum - eğer iki satır sadece boşluklara göre farklılık gösteriyorsa, aynı görünüyorlar. - Ben dosya farklılıklar dayanmaktadır şey için çalışmalarına bu yapılandırma seçeneği / bayrağı gerek diff, blamehatta merge/ rebaseideal - İstediğim gittamamen sondaki boşluğu, özellikle satır sonları görmezden. Bunu nasıl yapabilirim?

Yanıtlar:


14

Fark için, git diff --ignore-space-at-eolyeterince iyi olmalı. Diff ve suçlama için, tüm boşluk değişiklikleri göz ardı edebilirsiniz -w: git diff -w, git blame -w.

İçin git applyve git rebase, belgeler söz --ignore-whitespace.

Birleştirmek için harici bir birleştirme aracı kullanmanız gerekiyor gibi görünüyor. En favorite-mergetoolsevdiğiniz birleştirme aracı nerede bu sarmalayıcı komut dosyasını (denenmemiş) kullanabilirsiniz ; koş git -c mergetool.nocr.cmd=/path/to/wrapper/script merge. Birleştirme sonucu unix biçiminde olur; başka bir format tercih ederseniz, her şeyi farklı formata dönüştürün veya $MERGEDbirleştirme işleminden sonra dönüştürün .

#!/bin/sh
set -e
TEMP=$(mktemp)
tr -d '\013' <"$BASE" >"$TEMP"
mv -f "$TEMP" "$BASE"
TEMP=$(mktemp)
tr -d '\013' <"$LOCAL" >"$TEMP"
mv -f "$TEMP" "$LOCAL"
TEMP=$(mktemp)
tr -d '\013' <"$REMOTE" >"$TEMP"
mv -f "$TEMP" "$REMOTE"
favorite-mergetool "$@"

Karışık çizgi sonlarıyla ilgili sorunu en aza indirmek için, metin dosyalarının böyle bildirildiğinden emin olun .

Ayrıca bkz . Git-birleştirmenin satır sonu farklarını görmezden gelmesi mümkün müdür? Yığın Taşması.


-W bayrağını her zaman git blame ile kullanmak için herhangi bir yapılandırma var mı?
Thayne

@Thayne Bildiğim kadarıyla değil. Gibi bir takma ad tanımlayabilirsiniz, bl = blame -wancak yerleşik komutların adını yeniden tanımlayamazsınız ve bunu varsayılan yapmak için bir yapılandırma seçeneği göremiyorum. Ama ben bir git uzmanı değilim.
Gilles 'SO- kötü olmayı bırak'

için git statusmi
Ejaz
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.