นี่คือที่มาของข้อความแสดงข้อผิดพลาด:
$ 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
และ ส่วนที่เหลืออย่างน้อยเมื่อดำเนินการโดยตรงเป็นคำสั่งในทุบตีเป็นไปป์ไปยังคำสั่ง%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 เพื่อป้องกันไม่ให้คุณต้องค้นหาชุดค่าผสมที่ถูกต้องของการอ้างอิงและการหลบหนีเพื่อให้สตริงรูปแบบถูกยกมาอย่างถูกต้องในเวลาของการดำเนินการ
คู่มือการกำหนดค่า git เกี่ยวกับนามแฝงและข้อความ:
อาร์กิวเมนต์ถูกแบ่งตามช่องว่างสนับสนุนการอ้างอิงเชลล์และการหลบหนีตามปกติ เครื่องหมายคำพูดคู่และแบ็กสแลชสามารถใช้เพื่ออ้างอิงได้
จากบรรทัดนี้ฉันไม่สามารถเข้าใจได้ว่าการอ้างอิงและการหลบหนีทำงานอย่างไร ฉันพยายามรวมข้อความและหลบหนีในนามแฝง แต่ไม่สามารถทำให้เข้าใจได้
บรรทัดต่อไปนี้ที่คุณโพสต์ในคำถามของคุณทำงานได้ดีในระบบของฉัน:
[alias]
hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
คุณจะต้องทดลองเพื่อให้ได้ชุดค่าผสมที่เหมาะสมในระบบของคุณในขณะที่ใช้ PuTTY และทั้งหมด