Git: удалить лидирующий плюс/минус из строк в diff
Мой вопрос довольно прост, хотя мне не повезло найти ответ.
Я хочу удалить верхние символы плюс/минус из каждой строки в git diff
. Прежде чем спросить, почему я хочу это сделать, позвольте мне изложить мои причины:
- Линии, составляющие ровно 80 символов, будут переполняться одним символом, который выглядит просто неудобно
- Раскраски достаточно для того, чтобы различать добавления/удаления
- Я бы предпочел сохранить ширину окна терминала на 80 символов (в отличие от произвольных 81 символа), чтобы поддерживать согласованность со всем остальным, что я делаю в своем терминале (вне
git
)
Есть ли какой-нибудь вариант конфигурации для этого? Если нет, то как я могу сделать это таким образом, чтобы до сих пор разрешать мне просматривать через мой стиль less
-style?
Любое понимание будет принята с благодарностью.
Ответы
Ответ 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]()