편집하다

편집하다

diff설명대로 사용하고 싶습니다여기문서에 를 입력하면 man diff다음 diff과 같은 결과가 나타납니다.

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

마찬가지로, 내가 시도할 때사용 diff-rq, 지원되지만 지원 man diff되지 않기 때문에 git 오류가 발생합니다 git diff.

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

나는 그것을 사용하고 있다프레스토 악장그리고센터둘 다 Git 생산성을 향상시키는 데 도움이 되지만 둘 다 부적합한 별칭을 생성하지 않습니다.적어도g내가 아는 한, 처음부터.

나는 다음과 같은 스크립트를 실행했습니다.이것몇 가지 정의를 찾으려고 노력했지만 diff소용 git diff이 없었습니다.

이 문제를 어떻게 해결하고 원인을 찾고 재정의할 수 있나요?

편집하다

하지만 type diff:

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

답변1

이거에서 나온거 같은데prezto는 함수 재정의를 정의합니다diff. 비활성화하는 방법이 있을 것 같지만 그것이 무엇인지는 모르겠습니다(하지만 에릭네는 해냈습니다!). 여러 가지 옵션이 있습니다:

  • /usr/bin/diff또는 둘 다 기능 대신 명령을 command diff실행합니다 .diff
  • unset -f diffdiff기능은 제거됩니다. 이를 쉘 구성에 넣을 수 있습니다.
  • 발견한 대로, colordiff설치 되면 git diff해당 기능보다 우선적으로 사용됩니다.
  • 마지막으로 파일 자체에서 함수를 제거하거나 이름을 바꿀 수 있습니다.

프레즈토의 버그인 것 같습니다.

답변2

나는 이런 기능을 사용할 것이다

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

매개변수가 있는 별칭에 대한 함수

용법:diffit file1 file2

이것을 .bashrc에 넣을 수 있습니다.
저는 개인적으로 함수 컬렉션을 보관하고 있습니다 .bash_functions..bashrc

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

답변3

@MichaelHomer가 대답했듯이 이것은 다음에 문서화된 유틸리티 모듈의 일부인 prezto 함수입니다.https://github.com/sorin-ionescu/prezto/tree/master/modules/utility. 이 기능을 비활성화하는 방법은 다음과 같습니다.

diff 강조 표시를 비활성화하려면 zpreztorc에 다음 줄을 추가하십시오.

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

또는 설치 시 colordiff사용자 정의 함수가 이를 대신 호출하게 됩니다 git diff. 사용자 정의 prezto의 목적은 다음 diff과 같습니다.

  • diff차동 출력을 강조 표시합니다( colordiff또는 필요 Git).

관련 정보