Cách tạo git diff --ignore-space-thay đổi giá trị mặc định


110

Tôi có thể có thể thiết lập một bí danh, nhưng có vẻ như tôi sẽ có thể đặt điều này như một tùy chọn trong tệp cấu hình, chỉ có điều tôi không thấy cách nào để làm điều đó.

Tôi chỉ muốn --ignore-space-changekhi tôi đang làm khác, không phải khi tôi áp dụng hoặc bất cứ điều gì khác. Tôi đang cố gắng làm cho sự khác biệt dễ hiểu hơn bằng cách không làm lộn xộn nó với các dòng +/- không liên quan mà không có thay đổi thực sự trên chúng.


2
quan tâm để thay đổi câu trả lời đúng? :)
igorsantos07

1
bây giờ có một phím tắt git diff -wlà một phím tắt cho --ignore-all-space: Bỏ qua khoảng trắng khi so sánh các dòng. Điều này bỏ qua sự khác biệt ngay cả khi một dòng có khoảng trắng trong khi dòng kia không có.
João Pimentel Ferreira

Câu trả lời:


22

Theo hướng dẫn sử dụng Git Config, không có tùy chọn nào như vậy. Lựa chọn duy nhất của bạn là tạo một bí danh.

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


Tôi cũng đang nghĩ điều đó khi đọc trang đó. Tôi đã hy vọng ai đó biết một cách mà không được ghi lại ... ồ ồ.
boatcoder

@Dogbert - Tôi gặp vấn đề tương tự, chỉ khi tôi thực hiện git add -p <file_name>, bạn có đề xuất gì không?
Guy Avraham

@ JoãoPimentelFerreira Điều đó không làm cho nó trở thành mặc định.
DylanYoung


99

Bạn có thể sử dụng bí danh git hoặc bí danh bash nếu bạn đang sử dụng hệ điều hành có sẵn của shell.

  1. git alias : Chạy lệnh này để thêm alias:

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

    --ignore-space-change can be abbreviated to -w
    để áp dụng bí danh bằng cách sử dụng: git dfw

  2. bí danh bash : Chạy lệnh này để thêm bí danh bash:

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

    Mở một thiết bị đầu cuối mới và bạn có thể trực tiếp chạy gitdfwđể đạt được điều tương tự.


8
Đây phải là câu trả lời được chấp nhận, bởi vì nó thực sự hữu ích với các ví dụ hơn là 'truy cập URL này'.
DrStrangepork

7
Theo tài liệu git hiện tại , -bcũng giống như --ignore-space-change. Nó phù hợp với difflệnh Linux , -wcó nghĩa là --ignore-all-space. Đó là một sự khác biệt quan trọng bởi vì, ví dụ, văn bản a b cđược coi là giống như abcvới -wtùy chọn; trong mã, điều này có thể không phải là những gì bạn muốn, vì vậy -blà một lựa chọn tốt hơn.
Richard Wiseman


10

CHỈNH SỬA: TÔI LÀ MỘT CHÂN VÀ CHƯA ĐỌC YÊU CẦU CỦA BẠN QUA

Một cách để đạt được điều gì đó tương tự, từ man git-config:

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

Vì vậy, hãy mở ~/.gitconfighoặc ./.git/config/và nối thêm

[apply]
   whitespace = nowarn

Nó cũng có thể không cho phép bạn cam kết điều gì đó chỉ thay đổi khoảng trắng, nhưng tôi chắc chắn rằng bạn có thể vượt qua điều đó với một số cờ.


1
OP đang tìm cách đặt giá trị mặc định khi thực hiện a git diff. Điều này làm điều đó cho apply.
denishaskin

10

Câu hỏi cũ (2011), nhưng bây giờ có một phím tắt git diff -wlà viết tắt của --ignore-all-space

Bỏ qua khoảng trắng khi so sánh các dòng. Điều này bỏ qua sự khác biệt ngay cả khi một dòng có khoảng trắng trong khi dòng kia không có.


2

sẽ thật tuyệt nếu điều này có thể thực hiện được với một tùy chọn. nhưng một bí danh hoạt động khá tốt. đây là những dòng có liên quan từ .gitconfig của tôi:

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

điều này giả sử sử dụng colordiff, mà tôi đề xuất, cung cấp cho bạn bản sao gần như chính xác của những gì git diff sẽ hiển thị, với hai điểm khác biệt:

  1. dòng --- trong colordiff có màu khác với dòng tương tự trong git diff (vấn đề rất nhỏ)
  2. từng tệp được hiển thị tại một thời điểm (vấn đề khó chịu - có ai biết cách khắc phục không?)

đây là / etc / colordiffrc của tôi:

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

Mac OS X 10.9.2, git phiên bản 1.8.5.2 (Apple Git-48)

(colordiff được lấy từ bia)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.