прокрутка 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

Вы можете использовать любую из менее команд для навигации по истории. См. Часто используемые меньше команд

Примеры. В левом нижнем углу вашего терминала вы должны видеть что-то вроде этого. enter image description here

В приведенном выше примере история имеет 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'

Это прекрасно работает для меня.

Вы можете сделать макрос для этой команды.