Это работало около года назад. Теперь это не так:

git log --abbrev=6

Ожидаемый результат - все хэши коммитов, сокращенные до 6 символов.

Фактический результат теперь это сообщение об ошибке:

фатальный: неоднозначный аргумент '6': неизвестная ревизия или путь не в рабочем дереве.
Используйте '-', чтобы отделить пути от ревизий, например так:
'git [...] - [...]'

У меня сложилось впечатление, что Git даже не знает об этом аргументе и пытается молча игнорировать его имя, но не значение.

Использование Git 1.8.1.msysgit.1 в Windows 7.

Дополнение: Да, и это не сработает и по другим параметрам. Вся команда:

git log --abbrev=6 --format=format:"----- Commit %%h on %%ci by %%an -----%%n%%n%%B"

Если я просто пропущу часть аббревиатуры, она все равно выдаст еще одну ошибку:

Фатальный: Неверное имя объекта 'формат'.

1 ответ1

0

Ничто из вышеперечисленного не работает для меня, но и не работает, по крайней мере, для меня на Mac/Unix.

Первая ошибка выдается, потому что Git анализирует ваше утверждение, как будто --abbrev является унарным флагом (то есть не принимает аргумент), а 6 является ссылкой на один объект (например, имя ветви, SHA и т.д.). Как в:

git log --abbrev GITREF    # Like branch or tag '6'

Похоже, что то же самое происходит с ключевым словом format .

Мое предположение одно из следующего:

  1. Совершенно не похожий на UNIX синтаксический анализ командной строки в эмуляторе терминала Windows, который вызывает серьезные искажения ваших параметров
  2. Ошибка в вашей версии Git, которая не повлияла на базовый код и, следовательно, не попала в основные примечания к выпуску Git (я проверил ...)
  3. Возможное изменение способа обработки --abbrev которое было опущено в примечаниях к выпуску (опять же, я проверил ...)

Просто из любопытства, дайте мне знать, если какая-либо из следующих работ (примечание: я обманул ваши знаки процента. Это была вещь для Windows?)

git log --format=format:'----- Commit %h on %ci by %an -----%n%n%B' --abbrev=6
git log --format=format:'----- Commit %h on %ci by %an -----%n%n%B' --abbrev-commit
git log --pretty=format:'----- Commit %h on %ci by %an -----%n%n%B' --abbrev=6
git log --pretty=format:'----- Commit %h on %ci by %an -----%n%n%B' --abbrev-commit

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .