파일에 대한 Git diff 출력은 색상 유지


123

그것은 할 수 있는가 git diff와 어떻게 든 착색과 출력을 파일로 저장?

git diff > filename.rtf파일에 저장 하는 방법을 알고 있지만 색상을 유지하고 싶습니다.


2
색상을 사용하여 html로 변환 할 수 있습니다. stackoverflow.com/questions/2013091/coloured-diff-to-html
Gabe Moothart

5
Notepad ++는 파일을 .diff 확장자로 저장하면 강조 표시됩니다.
Monsignor 2014

답변:


146

시험:

git diff --color > foo.txt

다음 문제 :

cat foo.txt

또는:

less -R foo.txt

2
@RoR, 한 사람의 "횡설수설"은 다른 사람의 (글쎄, 터미널의) 색상 코드입니다. ;-) 나는 그것을 시도하고 작동합니다; cat명령 줄에서 파일을 가져 오면 색상이 유지됩니다 . (어떻게 다른 당신은 색상이 보존 기대?)
mpontillo

1
그것이하는 일입니다. 배쉬 컬러링 코드를 추가합니다. 콘솔에서 파일을 분류하면 색상이 표시됩니다.
ralphtheninja 2012 년

1
@RoR bash 색상 코드를 rtf 형식으로 변환하려면 중간에 무언가를 넣어야합니다.
ralphtheninja 2012 년

3
Notepad ++는 diff 파일을 강조 표시 할 수 있습니다. (* .diff 확장자는 자동으로 강조 표시되고 그렇지 않으면 변경 Language --> D --> Diff됩니다.) 기본 색상이 마음에 들지 않으면 Settings --> Style Configurator --> Diff. 색상으로 붙여 넣기를 복사하려면 NppExportRTF 또는 HTML로 내보내기 / 복사 할 수있는 플러그인 (예 :)을 사용할 수 있습니다 .
Nikita G.

3
자식은 diff AB> foo.diff (파일이 .diff 파일이기 때문에 많은 편집자가 색상으로 파일을 엽니 다)
zeusstl

34

.diff 확장자로 파일을 저장하고 메모장 ++, Vim 또는 SublimeText에서 엽니 다.

git diff > 20150203_someChanges.diff

감사합니다 @Monsingor


중간에 '>'를 잊은 것 같습니다. 작동하지 않습니다
GoGoris

20

Sublime Text 2 에서 출력 diff 파일을 엽니 다 . 차이 색상을 보여줍니다.


1
diff 파일의 확장자가 * .diff와 다른 경우 적절한 강조 표시를 사용하려면 구문을 diff로 변경해야 할 수 있습니다. (View-> Syntax-> Diff를 통해).
Nikita G.

diff.txt오른쪽 하단 모서리에 "Diff"가 자동으로 감지 되어도 강조 표시되지 않습니다 .
Nakilon 2016 년

11

@Gabe의 대답을 확장하려면.

출력을 ansi to html 변환기 bash 스크립트로 파이프하고 해당 출력을 html 파일로 보낼 수 있습니다.

git diff --color|./ansi2html.sh > changes.html

물론 html은 모든 브라우저에서 볼 수 있으므로 출력은 Windows 등에서 읽을 수 있습니다.

ansi2html 코드는 여기에 있습니다 : http://www.pixelbeat.org/scripts/ansi2html.sh


작동하지 않습니다. gawk : cmd. line : 25 : (FILENAME =-FNR = 1) 치명적 : 스칼라 컨텍스트에서 배열`a (스팬에서) '사용 시도
Tim

2
Homebrew를 다운로드하고 실행하십시오 brew install gawk. 또한 필요합니다 brew install gnu-sed.
Geoffrey Booth

정확히 내가 원하는 것, 대단해!
Keith

ansi2html python 라이브러리가 나를 위해 github.com/ralphbean/ansi2html . pip 설치 가능 하며이 답변의 bash 스크립트와 똑같이 작동합니다. "./ansi2html.sh"를 "ansi2html"로 바꾸는 것을 잊지 마십시오.
Nagasaki45



2
git remote add -f b path/to/repo_b.git
git remote update
git diff master remotes/b/master > foo.txt

'* .txt'파일에서 추출 된 차이점은 설정하지 않고도 SublimeText2에서 쉽게 읽을 수 있습니다 (View-> Syntax-> Diff를 통해).


git remote rm remotes/b/master분기를 원래 상태로 재설정합니다.
Abhijeet

1

색상 화 된 터미널 텍스트 ... git diff 또는 기타 ... 브라우저에서 볼 수 있도록 허용

sudo apt-get install aha  #  https://github.com/theZiz/aha

aha위를 사용하여 설치 한 다음 발행하십시오.

git diff --color mysourcefile  | aha > ~/cool_colorized.html

firefox  ~/cool_colorized.html

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