прокрутка git diff от mac terminal
Я использую git на терминале на OS X 10 Yosemite.
Когда я делаю git diff, я получаю длинный список изменений, и иногда мне просто нужно прокручивать до конца, но я не мог понять, как это сделать, кроме как держать keydown на MacBook pro, а затем медленно прокручивается.
если я нажму клавишу FN + вниз, тогда он не будет прокручиваться, если я не пропустил прокрутку вниз вниз с помощью кнопки "вниз", но не идет дальше вниз...
любой совет будет оценен, это очень раздражает... :(
Ответы
Ответ 1
git diff
использует тот же пейджер, что и меньшая команда Unix.
- Используйте клавиши
d
и u
для перехода вниз/вверх на половину страницы (вперед/назад технически) - Перейти к последней строке:
G
- Используйте
h
если вы хотите отобразить справку
Другим трюком является сохранение diff как файла патча, как это делалось в дни электронной почты! Затем вы можете открыть патч в любой программе (Sublime имеет подсветку синтаксиса красный/зеленый)
Некоторые примеры:
git diff master > ~/patch
git show someCommitSHA > ~/patch
git diff master myBranch -- *.js *.css > ~/patch
patch js & css diff от master
git apply ~/patch
Обычно вы используете патч, применяя diff, но вы можете просто открыть файл в любом текстовом редакторе. Это полезно, если вы не хотите делать полный коммит из своего diff, но все равно хотите использовать его в другом месте или отправить его другу
Вы также можете использовать git diff master | grep -C 2 someKeyword
git diff master | grep -C 2 someKeyword
чтобы показать diff + / - 2 строки вокруг некоторого ключевого слова
Ответ 2
Вы можете использовать любую из менее команд для навигации по истории. См. Часто используемые меньше команд
Примеры. В левом нижнем углу вашего терминала вы должны видеть что-то вроде этого.
В приведенном выше примере история имеет 221 строку, из которой в текущем окне отображаются строки 21-62.
Перейдите непосредственно к номеру строки: вы можете напрямую перейти к строке, набрав
line-number (followed by) g (no spaces necessary)
например: перейти к строке # 100 просто введите 100g
Пропустить x-количество строк: введите число и нажмите enter.
Прокрутите вниз и прокрутите вниз. Используйте Fn
Или используйте ниже альтернативы.
Хит пробел. как предположил ILI.
Прокрутка вверх по странице
Хит 'w'
Иди домой
Fn Left-Arrow Перейти к концу Fn Стрелка вправо
Ответ 3
За мзабалуев комментарий:
Терминал OS X имеет некоторую волшебную интеграцию с less, которая ломается, когда git выполняет подпроцесс под меньшим: при запуске как git diff | меньше, прокрутка вперед возможна жестом тачпада, но с выводом git diff она только прокручивает вывод терминала и не может сказать меньше, чтобы прокрутить вперед. Интересно, что git help не страдает от этой проблемы. - Мзабалуев 4 января в 0:39
Эта магия также включает в себя включение страницы вверх (FN + вверх) и pagedown (FN + вниз).
Быстрый и грязный способ обойти это - вызывать less
себя с помощью:
git diff --color=always | less -r
Параметры командной строки сохраняют вывод git color. Я получил их от Может ли менее сохранить цветной вывод?
Ответ 4
Самый простой способ - использовать less
для чтения различий. Вам нужно использовать --color
и -R
, чтобы сохранить окраску.
git diff --color | less -R'
Это прекрасно работает для меня.
Вы можете сделать макрос для этой команды.