Dane wyjściowe Git diff do pliku zachowują kolorowanie


Odpowiedzi:


147

Próbować:

git diff --color > foo.txt

Później wydanie:

cat foo.txt

Lub:

less -R foo.txt

2
@RoR, „bełkot” jednej osoby to kody kolorów innej osoby (no cóż, terminala). ;-) Wypróbowałem i działa; kolorystyka jest zachowana, jeśli catplik z wiersza poleceń. (Jak inaczej można by się spodziewać zachowania kolorów?)
mpontillo

1
Cóż, właśnie to robi. Dodaje kody kolorystyczne bash. Jeśli wytypujesz plik w konsoli, pokaże on kolory.
ralphtheninja

1
@RoR Musiałbyś umieścić tam coś pośrodku, aby przekonwertować kody kolorów bash do formatu rtf.
ralphtheninja

3
Notepad ++ może podświetlać pliki różnicowe. (Rozszerzenia * .diff są automatycznie podświetlane, w przeciwnym razie zmienią się Language --> D --> Diff.) Jeśli nie lubisz kolorów domyślnych, zmień je w Settings --> Style Configurator --> Diff. Aby skopiować wklej z kolorami, możesz użyć wtyczki (np. NppExport), Która umożliwia eksport / kopiowanie do formatu RTF lub HTML.
Nikita G.

3
git diff AB> foo.diff (Wiele redaktorów otworzy plik z kolorami, ponieważ jest to plik .diff)
zeusstl

34

Zapisz plik z rozszerzeniem .diff i otwórz go w Notepad ++, Vim lub SublimeText.

git diff > 20150203_someChanges.diff

Dzięki @Monsingor


Myślę, że zapomniałeś '>' w środku, to nie działa
GoGoris

20

Otwórz wyjściowy plik różnicowy w Sublime Text 2 . Pokazuje różne kolory.


1
Może zajść potrzeba zmiany składni na diff, aby umożliwić właściwe podświetlanie w przypadku, gdy plik diff ma rozszerzenie inne niż * .diff. (przez Widok -> Składnia -> Różnica).
Nikita G.

Nie podświetla się diff.txtdla mnie, nawet z automatycznie wykrytym „Diff” w prawym dolnym rogu.
Nakilon

11

Aby rozwinąć odpowiedź @ Gabe.

Możesz przesłać dane wyjściowe do skryptu bash konwertującego ansi na html i skierować je do pliku html:

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

oczywiście html można przeglądać w dowolnej przeglądarce, więc dane wyjściowe można odczytać w systemie Windows itp.

Kod ansi2html jest tutaj: http://www.pixelbeat.org/scripts/ansi2html.sh


nie działa, otrzymuję: gawk: cmd. line: 25: (FILENAME = - FNR = 1) fatal: próba użycia tablicy `a (from span) 'w kontekście skalarnym
Tim

2
Zdobądź Homebrew i biegnij brew install gawk. Będziesz także potrzebować brew install gnu-sed.
Geoffrey Booth

dokładnie to, czego chcę, super!
Keith

Biblioteka ansi2html python zrobiła to za mnie github.com/ralphbean/ansi2html . pip można zainstalować i działa dokładnie tak, jak skrypt bash w tej odpowiedzi. Nie zapomnij zamienić „./ansi2html.sh” na „ansi2html”.
Nagasaki



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

Różnice wyodrębnione w plikach '* .txt' są łatwo odczytywane przez SublimeText2 bez potrzeby ustawiania (poprzez Widok -> Składnia -> Różnica).


git remote rm remotes/b/masteraby zresetować gałąź z powrotem do jej pierwotnego stanu.
Abhijeet

1

aby każdy kolorowy tekst terminala ... git diff lub jakikolwiek inny ... był widoczny z przeglądarki

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

zainstaluj ahaza pomocą powyższego, a następnie wystaw

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

firefox  ~/cool_colorized.html

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.