Псевдонім журналу Git - фатальний: неоднозначний аргумент '% ad': невідома редакція або шлях


9

Я намагаюся використовувати псевдонім журналу Git Immersion :

[alias]
    hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short

але Гіт відповідає з

fatal: ambiguous argument '%ad': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions

використовуючи v1.6.1. Все, що я зробив до цього часу, - це два вчинки на майстра, потім один на гілці. Цей псевдонім працює для мене в іншому місці, що може бути проблемою на цій конкретній машині?

Редагувати - На підставі запропонованої лесмена нижче, я зміг визначити, що після наклеювання рядка в PuTTY якимось чином нахили накипи на лапки. Я отримую вказану вище помилку при використанні "замість \".

Відповіді:


14

Ось джерело повідомлення про помилку:

$ 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 та всіх.


1
У вас є документація на це? Для мене, принаймні, це навпаки.
вс

@wes: Додано посилання на документацію. Переписав відповідь.
lesmana

4
Мені довелося замінити подвійні лапки на одинарні лапки, щоб зробити наступну роботу з git 1.7.5.1 під OSX:[alias] lg = log --graph --pretty='format:%C(yellow)%h %Creset%s%Cred%d'
meagar
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.