"diff"명령으로 내 벅을 최대한 활용하려면 어떻게해야합니까?


9

나는 diff행운이나 인내심없이 과거에 리눅스 명령을 사용해 보았습니다 . 나는 보통 DiffMerge 또는 Kdiff와 같은 GUI 유틸리티를 사용합니다.

최근에 diffssh를 통해 원격 시스템의 파일을 비교 하기 위해 다시 사용하려고 시도 했으며 -y / --side-by-side옵션이 매우 유용하다는 것을 알았지 만 여전히이 유틸리티를 최대한 활용하지 않는 것 같습니다.

그래서 나는 다음을 달성하는 방법이 궁금합니다.

  1. 변경 내용을 강조 표시하거나 색상 코딩을 사용하여 출력을보다 읽기 쉽게 만듭니다.
  2. 병합-차이점이있는 줄을 선택하고 파일 중 하나에 변경 사항을 적용합니다

또한 인터넷 검색을 할 때 좋은 예를 많이 찾지 못했기 때문에 diff를 최대한 활용하기위한 Linux-fu 비밀이 있다면 공유 할 수 있습니까? 나는 주로 텍스트 기반 구성 파일을 비교할 것이지만 모든 요령과 팁은 훌륭 할 것입니다.

참조 용 -DiffMerge 유틸리티는 색상 강조 표시와 함께 변경 사항을 쉽게 표시합니다. 상단의 아이콘을 사용하면 "모두 표시", "차이 표시"및 "컨텍스트와의 차이 표시"보기 사이를 전환 할 수 있습니다. 명령 프롬프트에서이 기능 중 일부를 좋아할 것입니다.

추신 : 나는 또한 매우 유용하다고 생각되는 또 다른 옵션은 간결하고 읽기 쉬운 블로그 게시물--suppress-common-lines 에서 배운 것입니다 .


3
vimdiff를 꽤 많이 사용합니다.
nicerobot

@nicerobot이 답변을 게시 할 수 있습니다-매우 유용하고 유용한 도구입니다.
rozcietrzewiacz

당신은, 그것의 무료 ..... 죄송합니다 그것을 도울 수 없습니다 : D
whoami

나는 Emacs에서 대부분의 diffing을한다.
Gilles 'SO- 악마 중지

@whoami-무엇?
cwd

답변:


9

특별한 순서는 없습니다 :

  • meld 아주 좋은 diffs와 삼원 병합을 수행하는 아주 좋은 diff 프로그램입니다.
  • git config --global merge.conflictstyle diff3와 같은 도구에 사용하기위한 3 방향 병합 출력을 제공합니다 meld.
  • wdiff않는 단어의 경우 차이점, 아주 좋은을 :wdiff -w "$(tput bold;tput setaf 1)" -x "$(tput sgr0)" -y "$(tput bold;tput setaf 2)" -z "$(tput sgr0)" ...
  • diff출력의 균열을 최소화하기 위해 일반적으로 --ignore-all-space( -w) 옵션을 사용합니다
  • diff-ignore-moved-lines* 라벨에 표시된 내용을 수행합니다.
  • difff* 주어진 필드에서 일치하는 줄만 다른 것으로 사용할 수 있습니다.

면책 조항 : 저는 저자이며 CLI 및 GUI diffing 및 병합에 도움이되도록 개발했습니다.


1
나는 또한 diffuse꽤 많이 사용 합니다.
Arcege

diff -u도 매우 간단합니다.
개브.


3

diff에서 채색하려면 http://colordiff.sourceforge.net/ 을 참조 하십시오 . 이것은 diff를 감싸는 래퍼 일 뿐이므로 모든 명령 옵션이 여전히 작동합니다.

우분투가있는 경우 다음과 같이 작성하십시오.

    # sudo apt-get install colordiff

유스 케이스를 충족시키지 못할 위험을 감수하는 것은 많은 확산 및 병합 도구 (명령 행 및 GUI 도구)와 잘 통합 git되는 매우 유용한 VCS 입니다. 옵션이라면 시도해보십시오.


1

시험 sdiff

diff함께 사용할 병합 스크립트를 작성하는 옵션 ( -e또는 -ed)이 있습니다.ed

sdiff, diff그리고 ed지금 당신이 가서 쉘의 일부가되어야합니다.

버전 관리 소프트웨어는 아마도 가지고 diffmerge내장 도구를.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.