Git diff виводить файл для збереження забарвлення


123

Чи можливо зробити git diffі зберегти вихід у файл із забарвленням якось?

Я знаю, як це зробити git diff > filename.rtf- що зберігає файл, але я хотів би зберегти забарвлення.


2
Ви можете конвертувати в HTML з кольором: stackoverflow.com/questions/2013091/coloured-diff-to-html
Гейб Moothart

5
Notepad ++ виділить файл, якщо ви збережете його з розширенням .diff.
Монсеньйор

Відповіді:


146

Спробуйте:

git diff --color > foo.txt

Потім пізніше випустіть:

cat foo.txt

Або:

less -R foo.txt

2
@RoR, "тремтіння" однієї людини - це кольори інших кольорів (ну, терміналів). ;-) Я спробував це і працює; забарвлення зберігається, якщо я catфайл з командного рядка. (Як інакше ви б очікували збереження кольорів?)
mpontillo

1
Добре, що це робить. Додає коди забарвлення bash. Якщо ви вводите файл у консолі, він показує кольори.
ralphtheninja

1
@RoR Вам потрібно буде щось помістити туди, щоб перетворити коди кольорів bash у формат rtf.
ralphtheninja

3
Блокнот ++ може виділити різні файли. (* .dift-розширення автоматично виділяються, інакше змінюються Language --> D --> Diff.) Якщо вам не подобаються кольори за замовчуванням, змініть їх Settings --> Style Configurator --> Diff. Для копіювання пасти кольорами можна використовувати плагін (наприклад NppExport), який дозволяє експортувати / копіювати в RTF чи HTML.
Микита Г.

3
git diff AB> foo.diff (Багато редакторів відкриють файл кольорами, оскільки файл є .diff-файлом)
zeusstl

34

Збережіть файл із розширенням .diff і відкрийте його в Блокноті ++ або Vim або SublimeText.

git diff > 20150203_someChanges.diff

Дякую @Monsingor


Я думаю, що ти забув '>' посередині, це не працює
GoGoris

20

Відкрийте вихідний файл diff у Sublime Text 2 . Він показує різні кольори.


1
Вам може знадобитися змінити синтаксис на diff, щоб увімкнути правильне виділення у випадку, якщо файл diff має розширення, відмінне від * .diff. (через View -> Syntax -> Diff).
Микита Г.

diff.txtДля мене це не виділяється , навіть із автоматично виявленим "Diff" у правому нижньому куті.
Накілон

11

Щоб розширити відповідь на @ Gabe

Ви можете передавати висновок в скрипт bash-конвертора ansi в html та спрямовувати цей вихід у файл html:

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

Звичайно, HTML може переглядатися будь-яким браузером, тому вихід може бути прочитаний у Windows тощо.

Код ansi2html тут: http://www.pixelbeat.org/scripts/ansi2html.sh


не працює я отримую: gawk: cmd. рядок: 25: (FILENAME = - FNR = 1) фатальний: спроба використовувати масив `a (від прольоту) 'у скалярному контексті
Тім

2
Отримайте домашню мову та біжіть brew install gawk. Вам також знадобиться brew install gnu-sed.
Джеффрі Бут

саме те, що я хочу, приголомшливо!
Кіт

Бібліотека 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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.