นามแฝงบันทึก Git - ร้ายแรง: อาร์กิวเมนต์ที่ไม่ชัดเจน '% ad': การแก้ไขหรือเส้นทางที่ไม่รู้จัก


10

ฉันพยายามใช้นามแฝงของGit Immersion :

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

แต่ Git ตอบกลับด้วย

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

ใช้ v1.6.1 สิ่งที่ฉันทำไปแล้วก็คือทั้งสองมุ่งมั่นต่อนายแล้วอีกคนอยู่ที่กิ่ง นามแฝงนี้เหมาะกับฉันที่อื่นสิ่งที่อาจเป็นปัญหาในเครื่องนี้โดยเฉพาะ?

แก้ไข - ตามคำแนะนำของLesmanaด้านล่างฉันสามารถระบุได้ว่าแบ็กสแลชที่อยู่ในเครื่องหมายคำพูดนั้นถูกถอดออกหลังจากวางเส้นใน PuTTY ฉันได้รับข้อผิดพลาดขึ้นเมื่อใช้แทน"\"

คำตอบ:


18

นี่คือที่มาของข้อความแสดงข้อผิดพลาด:

$ 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 และทั้งหมด


1
คุณมีเอกสารประกอบสำหรับสิ่งนี้หรือไม่? อย่างน้อยสำหรับฉันมันเป็นวิธีอื่น ๆ
WES

@wes: เพิ่มลิงก์ไปยังเอกสาร เขียนคำตอบใหม่
lesmana

5
ฉันต้องแทนที่อัญประกาศคู่ด้วยอัญประกาศเดี่ยวเพื่อให้ทำงานต่อไปนี้ด้วย git 1.7.5.1 ภายใต้ OSX:[alias] lg = log --graph --pretty='format:%C(yellow)%h %Creset%s%Cred%d'
229044
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.