15 ответов:
Edit 2011: the другоеответы (upvoted) выделите возможность изменить параметры меньше, пейджер по умолчанию, используемый git.
Замечание в конце моего ответа все еще стоит: даже если вы можете видеть длинное сообщение фиксации, это не означает, что другие инструменты, имеющие дело с указанным (длинным) сообщением, смогут их обработать.
оригинальный ответ (январь 2010) о формате сообщения фиксации политика:
По данным этот блог, так как git log не делает никакой обертки, вам нужно отформатировать свой комментарий с соответствующей длиной строки
git logне делает никакой специальной упаковки сообщений фиксации.
С пейджером по умолчаниюless -S, это означает, что ваши абзацы текут далеко от края экрана, что затрудняет их чтение.
На терминале 80 столбцов, если вычесть 4 столбца для отступа слева и еще 4 для симметрии справа мы оставляем 72 столбца.git format-patch --stdoutпреобразует серию коммитов в серию сообщений электронной почты, используя сообщения для тела сообщения.
Хорошая электронная почта netiquette диктует нам обернуть наши обычные текстовые сообщения таким образом, что есть место для нескольких уровней вложенных индикаторов ответа без переполнения в терминале 80 столбцов.как сказал:
В общем случае используйте редактор для создания сообщений фиксации, а не для их передачи в командной строке. Формат должен быть:
- жесткая обертка на 72 символа
- один, краткий, резюме фиксации
- затем следует одна пустая строка
- с последующей поддержкой деталей
все источники (в том числе книги GitPro, который идет на 50 символов для первая строка, как Йорг Вт Миттаг комментарии) настаивают на необходимости завернуть себе комментарий, конечно, потому что, даже если Git смог справиться с длинными строками, другие инструменты в цепочке обработки (электронная почта, патчи,...) может отсутствовать.
или вы можете изменить свой пейджер, чтобы использовать
less -R$ git config --global core.pager 'less -R'это скажет меньше, чтобы перестать пытаться контролировать, как форматируется экран (обычно вы можете прокручивать вправо и влево во время
git logС помощью клавиш со стрелками). И как менее руководство говорит: "таким образом, могут возникнуть различные проблемы с отображением, такие как длинные строки, разделенные в неправильном месте."Что вы хотите, вы хотите, чтобы конец строки появляются в правой части экрана (в неположенном месте), а где комментарий автор поставил его.также отметить, нажав кнопку клавиша со стрелкой вправо без изменения вашего пейджера, позволит вам увидеть больше кода. Это мой предпочтительный метод.
кажется, нет никакого идеального способа. Обходной путь, который я использую, - это просто передать вывод в
more(илиlessилиcatetc.):git log | moreчто обертывает длинные строки по крайней мере на моей системе (однако, вы пропустите цветовое форматирование).
упомянутый в предыдущем ответе, что пейджер по умолчанию (часто "меньше") отвечает за обертывание и по умолчанию он обычно рубит длинные строки.
чтобы изменить это без изменения сообщений фиксации (меньше и пример bash):
$ echo $LESS -FRSXЭто было то, что у меня было по умолчанию, теперь для перезаписи переменной среды LESS.
echo "LESS=-FRX;export LESS" >> ~/.bash_profile source ~/.bash_profile
по крайней мере в Git версии 1.7.9.5,
git logподдерживает перенос строк. Из журнала справки git:PRETTY FORMATS %w([<w>[,<i1>[,<i2>]]]): switch line wrappingТак, например, следующие обертывания длинных предметов в 72 столбца:
alias gl='git log --format="%C(yellow)%h %an %ad%C(reset)%n%w(72,1,2)%s"'(согласился с тем, что соглашения о форматировании фиксации должны соблюдаться, а не полагаться на это. Тем не менее, это может оказаться полезным до тех пор, пока не наступит день, когда все будут знать и уважать конвенции.)
обратите внимание, что less-r (как рекомендовано выше) приводит к меньшему забыванию его количества строк, и вы пропустите фиксации, потому что ваши верхние строки будут прокручиваться из поля зрения! Реальное исправление-это отключение параметра-S, который git включает по умолчанию, если переменная среды LESS не задана.
хорошим исправлением является изменение конфигурации git следующим образом:
git config --global core.pager 'less -+S'
Это мне помогло.
git --no-pager log WhateverBranch | head -n40обычно ветвь большая, поэтому, прокручивая ее в головку и используя переключатель-n, вы можете захватить только самые последние 40 (или сколько угодно) строк вывода, которые вам нужны, и он должен обернуть (не нужно прокручивать). Имейте в виду, что этот подход также не имеет цветового форматирования.
Как упоминалось в VonC, вы можете обернуть свои сообщения о фиксации до 72 символов и убить много птиц одним камнем. Этот git hook автоматически обертывает ваши сообщения о фиксации и работает с любым редактором:https://github.com/surabhigupta/AutoWrapSeventyTwo
использование этого формата сделало мою жизнь счастливее:
log --pretty=format:\"%w(80,1,41)%h - %an, %ar : %s\"Так как поля в выводе перед сообщением о фиксации составили около 39 символов для большинства моих коммитов, это делает чтение намного проще.
личное предложение просто. Когда вы хотите видеть полные строки в меньшем пейджере, просто введите-S, это изменится на сгибание линий или назад, если вы хотите просмотреть раздел таким образом.
поэтому я искал решение аналогичной проблемы, и наткнулся на этот вопрос. В моем случае я запускаю git show, и у меня есть 2 строки, где изменение находится в одном слове, ближе к концу очень длинной строки. Я решил это с помощью аналогичного подхода к тому, как я делаю с git diff, используя опцию --word-diff-regex.
git show --color --word-diff-regex="[^[:space:],]+" 55de9c954d5d74a185879d3441a69cc1889c00f1 |more
вот как я решил для упаковки сообщений журнала git, для тех, кто все еще ищет ответы:
git log --pretty=format:"@%H,%cn,%cD,%B" <file name> | tr "\n" " "|tr "@" "\n"вывод команды git log передается по конвейеру, который находит новую строку и заменяет ее пробелом. Это логика, используемая для объединения сообщений фиксации в одну строку.
здесь я использую "@" в качестве разделителя, чтобы различать совершает. Вы можете заменить его любым специальным символом, который вы хотите. "%H "представляет хэш фиксации," %cn " представляет имя фиксатора, " %cD "представляет дату фиксации и" %B " необработанное сообщение тела. Если вы хотите узнать больше о pretty=format, пожалуйста, взгляните на https://git-scm.com/docs/pretty-formats
обратите внимание, что это может не работать, если у вас есть символ новой строки в сообщении git commit.
Если Nano является вашим предпочтительным редактором, то вы можете настроить git для использования nano с автоматической упаковкой, например, 72 символов:
git config --global core.editor "nano -r 72"
для тех, кто использует SourceTree есть параметр (Параметры > Общие), который покажет руководство столбца в сообщении фиксации:
КОРОТКИЙ ОТВЕТ:
Типа-Sзатем введите при просмотре журнала git.ПОДРОБНЫЙ ОТВЕТ:
git logвыходы с помощьюlessпросмотрщик текста, поэтому просто введите-Sзатем введите для переключения между двумя режимами обертывания линий "Chop long lines" и " Fold long lines."Опция" складывать длинные линии"позволяет переносить слова.источник, который помог мне узнать это: https://superuser.com/a/272826/425838


Comments