Cara membuat git diff --ignore-space-change sebagai default

110

Saya mungkin bisa mengatur alias, tapi sepertinya saya bisa mengatur ini sebagai opsi di file konfigurasi, hanya saja saya tidak melihat untuk melakukannya.

Saya hanya ingin --ignore-space-changesaat saya melakukan diff, bukan saat saya melamar atau apa pun. Saya mencoba membuat perbedaan lebih mudah untuk dipahami dengan tidak mengacaukannya dengan garis +/- asing yang tidak memiliki perubahan nyata pada mereka.

pembuat perahu
sumber
2
peduli untuk mengubah jawaban yang benar? :)
igorsantos07
1
sekarang ada jalan pintas git diff -wyang merupakan jalan pintas untuk --ignore-all-space: Abaikan spasi saat membandingkan baris. Ini mengabaikan perbedaan bahkan jika satu baris memiliki spasi sedangkan baris lainnya tidak memilikinya.
João Pimentel Ferreira

Jawaban:

22

Menurut manual Git Config, tidak ada opsi seperti itu. Satu-satunya pilihan Anda adalah membuat alias.

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

Dogbert
sumber
Aku juga berpikir begitu dari membaca halaman itu. Saya berharap seseorang tahu cara yang tidak didokumentasikan .... oh baiklah.
boatcoder
@Dogbert - Saya memiliki masalah yang sama, hanya ketika saya menjalankan git add -p <file_name>, ada saran?
Guy Avraham
@ JoãoPimentelFerreira Itu tidak menjadikannya sebagai default.
DylanYoung
ada opsi seperti stackoverflow.com/a/53054020/1243247
João Pimentel Ferreira
99

Anda bisa menggunakan git alias atau bash alias jika Anda menggunakan OS yang tersedia shell.

  1. git alias : Jalankan perintah ini untuk menambahkan alias:

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

    --ignore-space-change can be abbreviated to -w
    untuk menerapkan alias menggunakan: git dfw

  2. alias bash : Jalankan perintah ini untuk menambahkan alias bash:

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

    Buka terminal baru dan Anda dapat langsung menjalankan gitdfwuntuk mencapai hal yang sama.

yjqg6666.dll
sumber
8
Ini harus menjadi jawaban yang diterima, karena ini sebenarnya berguna dengan contoh daripada 'buka URL ini'.
DrStrangepork
7
Menurut dokumentasi git saat ini , -badalah sama dengan --ignore-space-change. Ini sejalan dengan diffperintah Linux , di mana -wartinya --ignore-all-space. Ini perbedaan penting karena, misalnya, teks a b cdianggap sama abcdengan -wopsi; dalam kode, ini tidak seperti yang Anda inginkan, jadi -bini adalah opsi yang lebih baik.
Richard Wiseman
10

EDIT: AKU BODOH DAN TIDAK MEMBACA PERMINTAAN ANDA MELALUI

Cara untuk mencapai sesuatu yang serupa, dari man git-config:

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

Jadi buka ~/.gitconfigatau ./.git/config/dan tambahkan

[apply]
   whitespace = nowarn

Mungkin juga tidak membiarkan Anda melakukan sesuatu yang hanya mengubah spasi, tapi saya yakin Anda bisa mengesampingkannya dengan beberapa bendera.

beberapa git bermanfaat
sumber
1
OP sedang mencari cara untuk mengatur default saat melakukan a git diff. Ini melakukannya untuk apply.
denishaskin
10

Pertanyaan lama (2011), tapi sekarang ada jalan pintas git diff -wyang berarti --ignore-all-space

Abaikan spasi saat membandingkan baris. Ini mengabaikan perbedaan bahkan jika satu baris memiliki spasi sedangkan baris lainnya tidak memilikinya.

João Pimentel Ferreira
sumber
2

akan lebih bagus jika ini dimungkinkan dengan sebuah opsi. tapi sebuah alias bekerja dengan cukup baik. berikut adalah baris yang relevan dari .gitconfig saya:

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

ini mengasumsikan menggunakan colordiff, yang saya sarankan, memberi Anda salinan yang hampir persis dari apa yang akan ditampilkan git diff , dengan dua perbedaan:

  1. --- baris di colordiff diberi warna berbeda dari baris yang sama di git diff (masalah yang sangat kecil)
  2. setiap file ditampilkan satu per satu (masalah yang mengganggu - ada yang tahu cara memperbaikinya?)

inilah / etc / colordiffrc saya:

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

Mac OS X 10.9.2, git versi 1.8.5.2 (Apple Git-48)

(Colordiff diperoleh dari minuman)

Joseph Cheek
sumber