Подтвердить что ты не робот

Git: удалить лидирующий плюс/минус из строк в diff

Мой вопрос довольно прост, хотя мне не повезло найти ответ.

Я хочу удалить верхние символы плюс/минус из каждой строки в git diff. Прежде чем спросить, почему я хочу это сделать, позвольте мне изложить мои причины:

  • Линии, составляющие ровно 80 символов, будут переполняться одним символом, который выглядит просто неудобно
  • Раскраски достаточно для того, чтобы различать добавления/удаления
  • Я бы предпочел сохранить ширину окна терминала на 80 символов (в отличие от произвольных 81 символа), чтобы поддерживать согласованность со всем остальным, что я делаю в своем терминале (вне git)

Есть ли какой-нибудь вариант конфигурации для этого? Если нет, то как я могу сделать это таким образом, чтобы до сих пор разрешать мне просматривать через мой стиль less -style?

Любое понимание будет принята с благодарностью.

4b9b3361

Ответ 1

Один из вариантов - использовать sed для удаления нежелательного символа из diff, сохраняя цвет:

git diff --color | sed -r "s/^([^-+ ]*)[-+ ]/\\1/" | less -r

(Обратите внимание, что вам нужно также удалить ведущее пространство, так как оно испускается diff.)

Ответ 2

Простой способ, которым я это видел, - это много. легко запомнить (Изменяется текстовый формат, поэтому вам нужно знать изменение кода)

git diff - цветные слова



Вот способ сделать это по умолчанию
Если вы используете linux, добавьте следующую команду в файл ~/.bashrc
Затем вы можете использовать gitdiff без пробела в качестве другой команды.

alias gitdiff='git diff --color-words'

Ответ 3

Для пользователей Mac вы должны будете использовать следующую команду:

git diff --color | sed -E "s/^([^-+ ]*)[-+ ]/\\1/" | less -r

caleb531 предоставил его в принятом ответе, но была небольшая опечатка.

Затем, если вы хотите выбросить это в псевдоним, вы можете сделать:

alias diff='git diff --color | sed -E "s/^([^-+ ]*)[-+ ]/\\1/" | less -r'

Ответ 4

Если я могу ответить на свой вопрос, я в конечном итоге решил использовать инструмент под названием diff-so-fancy. Он не только удаляет +/- из моих различий, но также упрощает заголовки файлов и выделяет изменения внутри каждой строки.

diff-so-fancy