2011-09-05 27 views
87

Tôi có thể thiết lập một bí danh, nhưng có vẻ như tôi có thể đặt tùy chọn này làm tùy chọn trong tệp cấu hình, chỉ mình tôi chưa thấy để làm điều đó.Cách tạo git diff --ignore-space-change mặc định

Tôi chỉ muốn --ignore-space-change khi tôi đang làm khác biệt, không phải khi tôi đang áp dụng hoặc bất cứ điều gì khác. Tôi đang cố gắng để làm cho các diff 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ự nào trên chúng.

+1

chăm sóc để thay đổi câu trả lời đúng? :) – igorsantos07

Trả lời

23

Theo sách hướng dẫn 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

+0

Tôi đã nghĩ rằng từ đọc trang đó quá. Tôi đã hy vọng một người nào đó biết một cách mà không được tài liệu .... oh well. – boatcoder

+0

@ Dogbert - Tôi có cùng một vấn đề, chỉ khi tôi thực hiện git add -p , mọi đề xuất? –

10

Tôi đồng ý với Dogbert's answer rằng nó có thể là tốt nhất để chỉ cần sử dụng một bí danh, nhưng tùy chọn khác là để thiết lập config option diff.external đến một kịch bản wrapper mà các cuộc gọi diff với -b.

78

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 trình bao.

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

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

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

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

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

    mở một nhà ga mới và bạn có thể trực tiếp chạy gitdfw để đạt được như vậy.

+5

Đâ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ụ thay vì 'đi đến URL này'. – DrStrangepork

+1

Theo [tài liệu git hiện tại] (https://git-scm.com/docs/git-diff), '-b' giống với' --ignore-space-change'. Nó phù hợp với lệnh 'diff' của Linux, trong đó' -w' có 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ư' abc' với tùy chọn '-w'; trong mã, đây không phải là những gì bạn muốn, do đó, '-b' là một lựa chọn tốt hơn. –

6

EDIT: TÔI một kẻ ngốc và KHÔNG ĐỌC YÊU CẦU CỦA BẠN Triệt

Một cách để đạt được một cái 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, mở ra bạn ~/.gitconfig hoặc ./.git/config/ và append

[apply] 
    whitespace = nowarn 

Nó cũng có thể không cho phép bạn đồng mmit cái gì đó mà chỉ thay đổi khoảng trắng, nhưng tôi chắc rằng bạn có thể overrule rằng với một số cờ.

+0

OP đang tìm cách thiết lập mặc định khi thực hiện 'git diff'. Điều này làm điều đó cho 'áp dụng'. – denishaskin

+2

-1, nhưng hữu ích ... –

2

nó sẽ là tuyệt vời nếu điều này là có thể 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ừ của tôi.gitconfig:

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

này giả sử dụng colordiff, mà tôi khuyên, đem lại cho bạn một gần bản sao chính xác về những gì git diff sẽ hiển thị, với hai sự khác biệt:

  1. dòng --- trong colordiff có màu khác với cùng một dòng trong git diff (vấn đề rất nhỏ)
  2. mỗi tệp được hiển thị cùng một lúc (vấn đề gây phiền nhiễu - bất kỳ ai biết sửa lỗi?)

đây là/etc/colordiffrc 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ừ brew)

Các vấn đề liên quan