오류 메시지의 출처는 다음과 같습니다.
$ 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의 매개 변수로 해석 된다는 것을 보여줍니다 . 실행시 형식 문자열이 올바르게 인용되도록 인용 및 이스케이프의 올바른 조합을 찾아야합니다.
별칭 및 인용에 관한 git config 매뉴얼 :
인수는 공백으로 나뉘며 일반적인 쉘 인용 및 이스케이프가 지원됩니다. 인용 부호와 백 슬래시를 사용하여 인용 할 수 있습니다.
이 줄에서 나는 인용과 탈출이 어떻게 작동하는지 알 수 없었습니다. 별칭에서 따옴표와 이스케이프 조합을 시도했지만 그 의미를 이해할 수 없었습니다.
귀하의 질문에 게시 한 다음 줄은 내 시스템에서 잘 작동합니다.
[alias]
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
PuTTY를 사용하는 동안 시스템에서 올바른 조합을 얻으려면 실험을해야합니다.