गेट लॉग उर्फ ​​- घातक: अस्पष्ट तर्क '% विज्ञापन': अज्ञात संशोधन या पथ


9

मैं गित विसर्जन लॉग इन उर्फ का उपयोग करने की कोशिश कर रहा हूं :

[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 का उपयोग कर। मैंने अब तक जो कुछ किया है, वह मास्टर पर दो कमिट है, फिर एक ब्रांच पर। यह उपनाम मेरे लिए कहीं और काम करता है, इस विशेष मशीन पर क्या समस्या हो सकती है?

संपादित करें - नीचे दिए गए सुलेमान के सुझाव के आधार पर , मैं यह निर्धारित करने में सक्षम था कि पुट्टी में लाइन चिपकाने के बाद उद्धरणों पर किसी तरह बैकस्लैश छीन लिए गए थे। "इसके बजाय का उपयोग करते समय मुझे उपरोक्त त्रुटि मिलती है \"

जवाबों:


14

यहाँ त्रुटि संदेश का स्रोत है:

$ 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 config मैनुअल उर्फ और के हवाले से के बारे में:

तर्क रिक्त स्थान से विभाजित होते हैं, सामान्य खोल उद्धृत और भागने का समर्थन किया जाता है। उद्धरण जोड़ी और उन्हें उद्धृत करने के लिए एक बैकस्लैश का उपयोग किया जा सकता है।

इस पंक्ति से मैं यह पता लगाने में सक्षम नहीं था कि कैसे उद्धृत और भागने काम करता है। मैंने उपनाम में उद्धृत करने और भागने के कुछ संयोजन की कोशिश की, लेकिन इससे कोई मतलब नहीं था।

आपके प्रश्न में पोस्ट की गई निम्न पंक्तियाँ मेरे सिस्टम पर ठीक काम करती हैं:

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

आपको पुट्टी और सभी का उपयोग करते हुए सिस्टम पर सही संयोजन प्राप्त करने के लिए प्रयोग करना होगा।


1
क्या आपके पास इसके लिए दस्तावेज हैं? मेरे लिए कम से कम यह दूसरा तरीका है।
वेस

@wes: प्रलेखन के लिए लिंक जोड़ा गया। उत्तर लिखो।

4
मुझे OSX के तहत git 1.7.5.1 के साथ निम्नलिखित काम करने के लिए सिंगल कोट्स के साथ दोहरे उद्धरणों को बदलना था:[alias] lg = log --graph --pretty='format:%C(yellow)%h %Creset%s%Cred%d'
18 जुलाय में meagar
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.