जवाबों:
मुझे लगता है कि git ls-remote
कमांड उस उद्देश्य के लिए बहुत अधिक है।
यदि आप --exit-code
तर्क का उपयोग करते हैं तो आप आउटपुट भेजना छोड़ सकते हैं null
। यह केवल त्रुटि के मामले में कुछ लौटाएगा।
इसके अलावा, आप -h
केवल प्रमुख संदर्भ दिखाने के लिए तर्क का उपयोग कर सकते हैं ।
git ls-remote --exit-code -h "$REPO_URL"
-h
एक महान विचार है। हालांकि, --exit-code
यहां सही विकल्प नहीं है। मैन पेज कहता है: "2" स्थिति से बाहर निकलें जब रिमोट रिपॉजिटरी में कोई मिलान रेफरी नहीं मिलता है। इसका मतलब यह है कि git ls-remote --exit-code "$REPO_URL"
एक खाली रेपो के लिए असफल हो जाएगा जिसे केवल प्रारंभिक रूप से बदल दिया गया है git init
।
आप कुछ का उपयोग करके आउटपुट को कम कर सकते हैं git ls-remote "$REPO_URL" HEAD
टी एल; डॉ:
git ls-remote
रास्ता है, यहाँ त्वरित पहुँच के लिए एक शेल-तैयार फ़ंक्शन है:
## Returns errlvl 0 if $1 is a reachable git remote url
git-remote-url-reachable() {
git ls-remote "$1" CHECK_GIT_REMOTE_URL_REACHABILITY >/dev/null 2>&1
}
उपयोग:
if git-remote-url-reachable "$url"; then
## code
fi
यह क्या कर रहा हैं ?
यह सभी टिप्पणियों / समाधानों का एक सुविधाजनक मैश-अप है, जिसे पहले कुछ छोटे ट्वीक्स, एक बैश कॉपी-पेस्ट तैयार फ़ंक्शन और उपयोग कोड नमूने के साथ क्रिस्टल स्पष्ट बनाने के लिए कहा गया था। आप ध्यान देंगे कि:
यह आउटपुट को सीमित करता है क्योंकि चेक किया गया संदर्भ संभवत: कोई git
भी नहीं है, क्योंकि अभी भी गैर-मिलान रेफरी पर त्रुटि-स्तर 0 के साथ बाहर निकल जाएगा । यहाँ केवल अंतर यह है कि नेटवर्क पर ट्रांसफर करने के लिए पूछने की तुलना में थोड़ा कम आउटपुट होता है HEAD
(और रेफरी के पूछने पर या केवल हेड्स तक सीमित न होने की तुलना में बहुत कम), और यह भी इसमें डालने के लिए कम आउटपुट है /dev/null
(लेकिन इसमें पिछले किसी भी समय नगण्य समय ले रहा है)
रेफरी ने यह स्पष्ट कर दिया है कि हम अस्तित्व के लिए जांच कर रहे हैं , यह मदद कर सकता है यदि आप उस सर्वर के प्रशासक के साथ विनम्र रहना चाहते हैं जो आप जांच कर रहे हैं और उन्हें समझने का मौका दें कि वे इन जांचों को प्राप्त करते हैं यदि वे कुछ भी निगरानी करते हैं।
/dev/null
काफी छोटा होना चाहिए।