Цветной, нумерованный, постраничный git diff

Связанный ответ дал мне хорошее начало, но был немного упрощен - он сработал, если у вас был глобус, соответствующий 3 файлам, но не если вы выполняли rm -rf foo .

У меня это работает в ~ .bash_profile :

rmf() {
    if [ "$1" == "-rf" ]; then
        read -r -p "Sure you want to delete '${2}' [y/N]? " response
        if [[ $response =~ ^(yes|y| ) ]]; then
            command rm "$@"
        fi
    else
        command rm "$@"
    fi
}
alias rm=rmf
5
15.01.2017, 16:49
5 ответов

Ответ Дилана Фрезе заставил меня немного исследовать, и я считаю, что это решение немного лучше, чем то, которое я ранее принял; Во всяком случае, для моих целей.

git config --global --replace-all core.pager 'less -NR'

Это позволяет мне git diff и даже не думать об этом. Конечно, бывают случаи, когда вы не хотите, чтобы это было постоянным глобальным изменением, так что info. здесь все еще в силе.

1
27.01.2020, 20:34

Вместо конвейера git log вы можете использовать минус встроена в нумерацию строк. Ввод -N в меньше приведет к отображению номеров строк.

1
27.01.2020, 20:34

используйте less -r , чтобы отобразить цвет, но вам нужно будет заставить git использовать цвета, потому что, когда вы передаете git diff , он будет отличаться от - nocolor

git diff --color HEAD~3 HEAD | nl | less -R

Если вы хотите получать номера строк в каждой строке, попробуйте найти предлагаемые здесь решения, https://stackoverflow.com/questions/24455377/git-diff-with-line -numbers-git-log-with-line-numbers

10
27.01.2020, 20:34

Попробуйте showlinenum и перенаправьте его на меньше -R , например

git diff --color=always | showlinenum.awk | less -R

Что касается showlinenum, просто клонируйте репозиторий github и скопируйте showlinenum.awk в PATH . Скрипт выдаст вам точный номер строки.

Также вы можете использовать git difftool . Если вас устраивает less , тогда vimdiff ( git difftool -t vimdiff ) будет хорошей идеей:

Прочтите man git- difftool для получения дополнительной информации.

-1
27.01.2020, 20:34

Используйте команду:
git diff --color=always | less -RN

И можно было определить команду быстрого доступа в~/.bashrc:

alias gdc='git diff --color=always | less -RN'

1
01.02.2020, 23:18

Теги

Похожие вопросы