Bí danh nhật ký Git - gây tử vong: đối số không rõ ràng '% quảng cáo': sửa đổi hoặc đường dẫn không xác định


10

Tôi đang cố gắng sử dụng bí danh nhật ký của Git Immersion :

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

nhưng Git trả lời

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

sử dụng v1.6.1. Tất cả những gì tôi đã làm cho đến nay là hai lần cam kết với chủ sau đó là một lần trên một nhánh. Bí danh này hoạt động với tôi ở nơi khác, điều gì có thể là vấn đề trên chiếc máy đặc biệt này?

Chỉnh sửa - Dựa trên đề xuất của lesmana bên dưới, tôi có thể xác định rằng bằng cách nào đó, dấu gạch chéo ngược trên dấu ngoặc kép đã bị xóa sau khi dán dòng trong PuTTY. Tôi nhận được lỗi trên khi sử dụng "thay vì \".

Câu trả lời:


17

Đây là nguồn của thông báo lỗi:

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

Bạn sẽ nhận được thông báo lỗi tương tự từ hai lệnh sau:

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

Vấn đề là git lognhận được hai đối số sau: --pretty=format:%h(hoặc --pretty=format:\"%h) và %ad. Phần còn lại, ít nhất là khi được thực thi trực tiếp như một lệnh trong bash, là một đường ống dẫn đến lệnh %s%d, thường không tồn tại. Do đó, thông báo lỗi đầy đủ trên hệ thống của tôi trông như thế này:

$ 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

Tất cả điều này chứng tỏ rằng trích dẫn bằng cách nào đó đã bị mất và %adđược hiểu là một tham số cho nhật ký git. Để ngăn chặn điều đó, bạn phải tìm sự kết hợp chính xác của trích dẫn và thoát để chuỗi định dạng được trích dẫn chính xác tại thời điểm thực hiện.

Hướng dẫn cấu hình git về bí danh và trích dẫn:

Các đối số được phân chia theo khoảng trắng, trích dẫn và thoát vỏ thông thường được hỗ trợ. trích dẫn cặp và dấu gạch chéo ngược có thể được sử dụng để trích dẫn chúng.

Từ dòng này, tôi không thể tìm ra cách trích dẫn và thoát khỏi hoạt động. Tôi đã thử một số kết hợp trích dẫn và thoát trong bí danh nhưng không thể hiểu ý nghĩa của nó.

Các dòng sau bạn đăng trong câu hỏi của bạn hoạt động tốt trên hệ thống của tôi:

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

Bạn sẽ phải thử nghiệm để có được sự kết hợp đúng trên hệ thống của bạn trong khi sử dụng PuTTY và tất cả.


1
Bạn có tài liệu cho việc này? Đối với tôi ít nhất đó là cách khác.
wes

@wes: Đã thêm liên kết đến tài liệu. Viết lại câu trả lời.
lesmana

5
Tôi đã phải thay thế dấu ngoặc kép bằng dấu ngoặc đơn để thực hiện công việc sau với git 1.7.5.1 trong OSX:[alias] lg = log --graph --pretty='format:%C(yellow)%h %Creset%s%Cred%d'
user229044
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.