Ось джерело повідомлення про помилку:
$ git log %ad
fatal: ambiguous argument '%ad': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
Ви отримаєте те саме повідомлення про помилку з наступних двох команд:
$ git log --pretty=format:%h %ad | %s%d [%an] --graph --date=short
$ git log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
Проблема полягає в тому, що git log
отримує такі два аргументи: --pretty=format:%h
(або --pretty=format:\"%h
) та %ad
. Решта, принаймні, коли виконується безпосередньо як команда в bash, - це труба до команди %s%d
, якої зазвичай не існує. Таким чином, повне повідомлення про помилку в моїй системі виглядає приблизно так:
$ git log --pretty=format:%h %ad | %s%d [%an] --graph --date=short
bash: %s%d: command not found
fatal: ambiguous argument '%ad': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
Все це демонструє, що цитування якось загубилося і %ad
інтерпретується як параметр для git log. Щоб уникнути того, що ви повинні знайти правильну комбінацію цитування та скасування, щоб рядки формату були цитовані правильно під час виконання.
Мерзотник конфігурації керівництво про псевдонім і процитувати:
Аргументи розділені пробілами, підтримується звичайне цитування оболонок і втеча. Пара цитат і зворотна косої риски можуть використовуватися для їх цитування.
З цього рядка я не зміг зрозуміти, як працює цитування та скасування. Я спробував деяку комбінацію цитування та втечі у псевдонімі, але не зміг вийти з цього сенсу.
У моїй системі відмінно працюють наступні рядки, які ви розмістили у своєму запитанні:
[alias]
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
Вам доведеться експериментувати, щоб отримати правильну комбінацію у вашій системі під час використання PuTTY та всіх.