Git log takma adı - ölümcül: '% ad' belirsiz argümanı: bilinmeyen düzeltme veya yol


10

Git Immersion'ın günlük diğer adını kullanmaya çalışıyorum :

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

ama Git cevap veriyor

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

v1.6.1 kullanarak. Şimdiye kadar yaptığım tek şey iki master, sonra bir şube olmak. Bu takma ad başka bir yerde benim için çalışıyor, bu makinede sorun ne olabilir?

Edit - Lesmana'nın aşağıdaki önerisine dayanarak, bir şekilde tırnak üzerindeki ters eğik çizgilerin PuTTY satırını yapıştırdıktan sonra soyulduğunu belirleyebildim. Bunun "yerine kullanırken yukarıdaki hatayı alıyorum \".

Yanıtlar:


18

Hata mesajının kaynağı:

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

Aşağıdaki iki komuttan aynı hata iletisini alırsınız:

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

Sorun git logşu iki argümanı almasıdır: --pretty=format:%h(veya --pretty=format:\"%h) ve %ad. Geri kalanı, en azından doğrudan bash'de bir komut olarak yürütüldüğünde %s%d, genellikle mevcut olmayan bir komuttur . Sistemimdeki tam hata mesajı böylece şöyle görünür:

$ 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üm bunlar, alıntılamanın bir şekilde kaybolduğunu ve %adgit günlüğü için bir parametre olarak yorumlandığını gösterir. Bunu önlemek için, yürütme sırasında biçim dizesinin doğru şekilde alıntılanması için doğru tırnak ve kaçış kombinasyonunu bulmanız gerekir.

Takma ad ve alıntı hakkında git config kılavuzu :

Bağımsız değişkenler boşluklara bölünür, olağan kabuk alıntı ve kaçış desteklenir. teklif çifti ve bir ters eğik çizgi bunları alıntılamak için kullanılabilir.

Bu satırdan alıntı yapmanın ve kaçmanın nasıl çalıştığını anlayamadım. Takma adda bazı alıntı ve kaçış kombinasyonlarını denedim, ancak bundan bir anlam çıkaramadım.

Sorunuza gönderdiğiniz aşağıdaki satırlar sistemimde iyi çalışıyor:

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

PuTTY ve hepsini kullanırken sisteminizde doğru kombinasyonu elde etmek için denemeler yapmanız gerekecektir.


1
Bunun için belgeleriniz var mı? Benim için en azından tam tersi.
wes

@wes: Belgelere bağlantı eklendi. Cevabı yeniden yaz.
lesmana

5
OSX altında git 1.7.5.1 ile aşağıdaki işi yapmak için tek tırnak çift tırnak değiştirmek zorunda kaldı:[alias] lg = log --graph --pretty='format:%C(yellow)%h %Creset%s%Cred%d'
user229044
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.