Git diff --ignore-space-change varsayılan olarak nasıl yapılır


110

Muhtemelen bir takma ad ayarlayabilirim, ancak bunu yapılandırma dosyasında bir seçenek olarak ayarlayabilmem gerekiyor gibi görünüyor, ancak bunu yapmayı zaten görmüyorum.

Ben sadece farklı --ignore-space-changeyaptığım zaman istiyorum, başvururken veya başka bir şey yaparken değil. Farkı, üzerinde gerçek bir değişiklik olmayan fazladan +/- çizgilerle karıştırmayarak anlaşılmasını kolaylaştırmaya çalışıyorum.


2
doğru cevabı değiştirmek ister misin? :)
igorsantos07

1
şimdi kısayol git diff -wolan bir kısayol var --ignore-all-space: Satırları karşılaştırırken beyaz boşlukları yoksay. Bu, bir satırda boşluk olsa ve diğer satırda hiç boşluk olmasa bile farklılıkları yok sayar.
João Pimentel Ferreira

Yanıtlar:


22

Git Config kılavuzuna göre böyle bir seçenek yok. Tek seçeneğiniz bir takma ad yapmaktır.

http://git-scm.com/docs/git-config


Bunu o sayfayı okuyarak da düşünüyordum. Birinin belgelenmemiş bir yol bildiğini umuyordum .... oh iyi.
boatcoder

@Dogbert - Aynı sorunu yaşıyorum, sadece git add -p <dosya_adı> yaptığımda herhangi bir öneri var mı?
Guy Avraham

@ JoãoPimentelFerreira Bu onu varsayılan yapmaz.
DylanYoung


99

Kabukta kullanılabilen işletim sistemi kullanıyorsanız git takma adını veya bash takma adını kullanabilirsiniz .

  1. git alias : Diğer ad eklemek için bu komutu çalıştırın:

    git config --global alias.dfw 'diff --ignore-space-change'

    --ignore-space-change can be abbreviated to -w
    takma adı kullanarak uygulamak için: git dfw

  2. bash takma adı : bash takma adı eklemek için bu komutu çalıştırın:

    echo "alias gitdfw='git diff --ignore-space-change'">>~/.profile

    Yeni bir terminal açın gitdfwve aynısını elde etmek için doğrudan koşabilirsiniz .


8
Bu, kabul edilen yanıt olmalıdır, çünkü "bu URL'ye git" yerine örneklerde gerçekten yararlıdır.
DrStrangepork

7
Göre mevcut git belgeler , -baynıdır --ignore-space-change. Linux diffkomutuyla uyumludur , -wyani --ignore-all-space. Bu örneğin, metin, çünkü önemli bir ayrımdır a b caynı kabul edilir abcile -wseçeneği; kodda, bu sizin istediğiniz gibi değildir, bu yüzden -bdaha iyi bir seçenek.
Richard Wiseman


10

DÜZENLEME: BEN BİR KAFAYIM VE TALEBİNİZİ YOLUYLA OKUMADIM

Aşağıdakilerden benzer bir şey elde etmenin bir yolu man git-config:

 apply.whitespace
       Tells git apply how to handle whitespaces, in the same way
       as the --whitespace option. See git-apply(1).

Öyleyse aç ~/.gitconfigveya ./.git/config/ekle ve ekle

[apply]
   whitespace = nowarn

Ayrıca yalnızca boşlukları değiştiren bir şeyi işlemenize de izin vermeyebilir, ancak eminim bunu bazı bayraklarla geçersiz kılabilirsiniz.


1
OP, a yaparken varsayılanı ayarlamanın bir yolunu arıyordu git diff. Bunun için yapar apply.
denishaskin

10

Eski soru (2011), ancak şimdi kısayol git diff -wvar --ignore-all-space

Satırları karşılaştırırken boşlukları yoksay. Bu, bir satırda boşluk olsa ve diğer satırda hiç boşluk olmasa bile farklılıkları yok sayar.


2

bu bir seçenekle mümkün olsaydı harika olurdu. ancak bir takma ad oldukça iyi çalışıyor. .gitconfig dosyamdaki ilgili satırlar:

[diff]
    tool = mydiff
[difftool "mydiff"]
    cmd = "colordiff -NuBbwi \"$LOCAL\" \"$REMOTE\" | less -R"
[difftool]
    prompt = false
[alias]
    dt = difftool

bu, önerdiğim colordiff'in kullanıldığını varsayar ve size git diff'in göstereceği şeyin neredeyse tam bir kopyasını verir , iki farkla:

  1. colordiff'teki --- çizgisi, git diff'teki aynı çizgiden farklı renkte (çok küçük bir sorun)
  2. her dosya birer birer gösterilir (can sıkıcı bir sorun - bir düzeltme bilen var mı?)

işte benim / etc / colordiffrc:

plain=off
newtext=green
oldtext=red
diffstuff=cyan
cvsstuff=red

Mac OS X 10.9.2, git sürüm 1.8.5.2 (Apple Git-48)

(renk farkı demlemeden elde edildi)

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.