Điều gì gây ra `diff` để chạy` git diff`?


7

Tôi muốn sử dụng diffnhư được mô tả ở đây và trong tài liệu tôi thấy khi tôi nhập man diff. Tuy nhiên, khi tôi gõ diff, những gì tôi nhận được là:

~ ❯❯❯ diff
usage: git diff --no-index <path> <path>

Tương tự như vậy khi tôi cố gắng sử dụng diff , tôi gặp lỗi git vì -rqđược hỗ trợ man diffnhưng không phải bởi git diff:

~ ❯❯❯ diff -rq ~/ ~/Desktop
fatal: invalid diff option/value: -rq

Tôi đang sử dụng Preztohub , cả hai đều giúp tăng năng suất git, nhưng không tạo ra bí danh mà ít nhất là không bắt đầu g, theo như tôi có thể nói.

Tôi đã chạy một vài kịch bản như này để cố gắng tìm cái gì đó là việc xác định diffđể git diffnhưng vô ích.

Làm cách nào để khắc phục điều này / tìm ra nguyên nhân gây ra / ghi đè lên nó?

Biên tập

Ran type diff:

diff is a shell function
diff is /usr/bin/diff

Chạy type diffvà gửi đầu ra.
Michael Homer


@MichaelHomer Đã thêm. Điều đó có vẻ đúng với tôi.
Ben Saufley

Tôi không biết làm thế nào bạn bảo prezto không làm điều đó, nhưng trường hợp xấu nhất bạn có thể hack nó.
Michael Homer

1
TRONG THỰC TẾ! Tôi đã chạy brew install colordiffvà bây giờ diffchạy colordiff, đó là một điều thực tế diffdựa trên.
Ben Saufley

Câu trả lời:


9

Điều này dường như là từ prezto xác định một chức năng ghi đèdiff . Nó cũng có thể có cách vô hiệu hóa điều đó, nhưng tôi không biết nó là gì ( nhưng ericbn thì có! ). Bạn có một vài lựa chọn:

  • /usr/bin/diffhoặc command diffcả hai sẽ chạy difflệnh, chứ không phải là chức năng.
  • unset -f diffsẽ loại bỏ diffchức năng. Bạn có thể đặt nó trong cấu hình shell của bạn.
  • Như bạn đã tìm thấy, nếu colordiffđược cài đặt, nó sẽ được sử dụng theo sở thích git diff.
  • Cuối cùng, bạn có thể loại bỏ hoặc đổi tên hàm từ chính tệp đó.

Điều này thực sự có vẻ giống như một misfeature trong prezto.


1
chắc chắn là một ví dụ điển hình về các vấn đề phạm vi toàn cầu và đặt tên va chạm
Michael Durrant

2

Tôi sẽ sử dụng một chức năng như thế này

$ diffit () {
command diff "$@"
}

Một hàm trên một bí danh vì có các tham số

Sử dụng: diffit file1 file2

Bạn có thể đặt nó trong .bashrc
Cá nhân tôi giữ bộ sưu tập các hàm của mình trong .bash_functionsvà trong .bashrctôi có

test -f ~/.bash_functions.sh && . $_

1
Chỉ cần làm cho nó command diff "$@".
Arthur2e5

1

Như @MichaelHomer đã trả lời, đây là một chức năng prezto, một phần của mô-đun tiện ích được ghi lại trong https://github.com/sorin-ionescu/prezto/tree/master/modules/utility . Cách để vô hiệu hóa điều này là:

Để tắt tính năng tô sáng khác, hãy thêm dòng sau vào zpreztorc:

zstyle ':prezto:module:utility:diff' color 'no'

Hoặc cài đặt colordiffcũng sẽ làm cho chức năng tùy chỉnh gọi nó thay vì git diff, như mục đích của prezto tùy chỉnh difflà:

  • diffnổi bật đầu ra khác nhau (yêu cầu colordiffhoặc Git).
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.