क्या यह जांचने का कोई तरीका है कि रिमोट में निर्दिष्ट, सापेक्ष पथ मौजूद फ़ाइल है या नहीं? अगर यह एकमात्र विकल्प है तो मैं पहले जानकारी लाने के साथ ठीक हूं। दूसरे शब्दों में मैं रिमोट और शाखा निर्दिष्ट करने के विकल्प के साथ गिट-एलएस-फाइलों की तलाश में हूं। मैं अगर फ़ाइल मौजूद है (शाखा पर फ़ाइलों की एक सूची के रूप में अच्छी तरह से काम हो जाएगा) केवल रुचि हूँ, मैं, हैश के बारे में परवाह नहीं है डिफ आदिमैं कैसे जांच करूं कि रिमोट में कोई फ़ाइल मौजूद है या नहीं?
उत्तर
आप
git cat-file -e <remote>:<filename>
उपयोग कर सकते हैं जो कि फाइल मौजूद होने पर शून्य से बाहर निकलें। <remote>
के बजाय आप एक दूरस्थ शाखा नाम का उपयोग करेंगे (लेकिन वास्तव में यह कोई पेड़-ईश ऑब्जेक्ट संदर्भ हो सकता है)। ऐसी दूरस्थ शाखा का उपयोग करने के लिए, आपको रिमोट रिपोजिटरी कॉन्फ़िगर और प्राप्त करने की आवश्यकता होगी (यानी git remote add
+ git fetch
का उपयोग करके)।
एक ठोस उदाहरण:
$ git cat-file -e origin/master:README && echo README exists
README exists
$ git cat-file -e origin/master:FAILME
fatal: Not a valid object name origin/master:FAILME
दो बातें ध्यान रखें:
- उपयोग
/
फ़ाइल नाम में पथ परिसीमक के रूप में, यहां तक कि पर उदा विंडोज। <filename>
भंडार की जड़ के सापेक्ष एक पूर्ण पथ (जैसेfoo/bar/README
) है।
आप भंडार के किसी अन्य भाग डाउनलोड किए बिना अलग-अलग फ़ाइलों का उपयोग करने की git archive उपयोग कर सकते हैं:
if git archive --format=tar \
--remote=<remote_name-or-URL> master README >/dev/null; then
echo 'master has README'
else
echo 'master does not have README (or other error)'
fi
संग्रह सेवा (upload-archive
) सभी सर्वरों या खजाने पर हालांकि सक्षम नहीं किया जा सकता है, आप होगा उन सर्वरों और रिपॉजिटरीज के लिए परीक्षण करने के लिए जिन्हें आपको एक्सेस करने की आवश्यकता है।
यदि संग्रह सेवा उपलब्ध नहीं है, तो आपको वस्तुओं को सामान्य माध्यमों से प्राप्त करना होगा।
यदि आपके पास पहले से ही भंडार के लिए रिमोट सेटअप नहीं है, तो आप FETCH_HEAD में "उथला" लाने के लिए कर सकते हैं (इसे गिट भंडार में किया जाना चाहिए, लेकिन यह पूरी तरह से असंबंधित या खाली भी हो सकता है):
git fetch --depth=1 remote_name-or-URL master
if git rev-parse --verify --quiet FETCH_HEAD:README >/dev/null; then
echo "repository's master has README"
else
echo "repository's master does not have README"
fi
आप किसी दूरस्थ भंडार के लिए परिभाषित किया है, तो आप शायद सिर्फ इसे अद्यतन और सामान्य रिमोट ट्रैकिंग शाखाओं के माध्यम से फ़ाइल का उपयोग करना चाहते हैं:
git fetch remote_name
if git rev-parse --verify --quiet remote_name/master:README >/dev/null; then
echo "remote's master has README"
else
echo "remote's master does not have README"
fi
ग्रेट सामान! वास्तव में उपयोगी –
चेतावनी दी जानी चाहिए: 'गिट-आर्काइव' समाधान भरोसेमंद काम नहीं करता है। ऐसा लगता है कि केवल शीर्ष स्तर की फ़ाइलों/निर्देशिकाओं के अस्तित्व के लिए जांचें, उदाहरण के लिए: 'git archive --remote =
- 1. मैं कैसे जांच सकता हूं कि पर्ल में कोई फ़ाइल मौजूद है या नहीं?
- 2. मैं कैसे जांच सकता हूं कि कोई फ़ाइल मौजूद है या नहीं?
- 3. कैसे जांचें कि कोई संपत्ति मौजूद है या नहीं?
- 4. मैं कैसे जांच सकता हूं कि पैकेज में कोई प्रक्रिया मौजूद है या नहीं?
- 5. मैं कैसे जांच सकता हूं कि एनएसएआरएआरई में कोई विशेष एनएसएसटींग मौजूद है या नहीं?
- 6. मैं कैसे जांच सकता हूं कि Smarty में कोई चर मौजूद है या नहीं?
- 7. मैं कैसे जांच सकता हूं कि मोंगोडीबी में कोई क्षेत्र मौजूद है या नहीं?
- 8. मैं कैसे जांच सकता हूं कि XmlAttributeCollection में कोई विशेषता मौजूद है या नहीं?
- 9. जांचें कि फ़ाइल मौजूद है या नहीं,
- 10. मैं कैसे जांच सकता हूं कि कोई निर्देशिका मौजूद है या नहीं?
- 11. जावा: ऐरेलिस्ट - मैं कैसे जांच सकता हूं कि कोई अनुक्रमणिका मौजूद है या नहीं?
- 12. कोल्डफ्यूज़न में, मैं कैसे निर्धारित करूं कि कोई क्वेरी स्ट्रिंग चर मौजूद है या नहीं?
- 13. मैं कैसे जांचूं कि एक्सएसएलटी में कोई टैग मौजूद है या नहीं?
- 14. मैं कैसे निर्धारित करूं कि शेल स्क्रिप्टिंग के साथ कोई वेब पेज मौजूद है या नहीं?
- 15. मैं कैसे परीक्षण करूं कि कोई निश्चित XML नोड मौजूद है या नहीं?
- 16. मैं कैसे जांचूं कि sqlite3 C++ API में कोई तालिका मौजूद है या नहीं?
- 17. जांच कर रहा है कि कोई आइटम JComboBox में पहले से मौजूद है या नहीं?
- 18. मैं कैसे जांच सकता हूं कि फ़ाइल मौजूद है या नहीं, और यदि निर्माण को मार नहीं है?
- 19. मैं कैसे जांच सकता हूं कि Emacs में वर्तमान बफर मौजूद है या नहीं?
- 20. पावरशेल में, मैं कैसे जांच करूं कि वैश्विक दायरे में एक विशिष्ट चर मौजूद है या नहीं?
- 21. PHP मैं कैसे जांच सकता हूं कि फ़ाइल एमपी 3 या छवि फ़ाइल है या नहीं?
- 22. मैं कैसे जांचूं कि रिकॉर्ड में कोई कुंजी मौजूद है या नहीं?
- 23. यह जांचने के लिए कि कोई फ़ाइल निर्देशिका या पाइथन में नियमित फ़ाइल है या नहीं?
- 24. जांचें कि रेल में कोई लेआउट मौजूद है या नहीं?
- 25. कोई फ़ाइल मौजूद है या नहीं, तो पाइथन जांच कैसे करें?
- 26. यह जांच रहा है कि कोई पैकेज मौजूद है या नहीं
- 27. यह बताएं कि कोई संपत्ति मौजूद है या नहीं है
- 28. मैं कैसे जांच सकता हूं कि एक RabbitMQ संदेश कतार मौजूद है या नहीं?
- 29. मैं कैसे जांचूं कि $ _GET पैरामीटर मौजूद है या नहीं, लेकिन इसका कोई मूल्य नहीं है?
- 30. मैं कैसे जांच सकता हूं कि स्ट्रिंग में सी # में कोई वर्ण है या नहीं?
'तक' आप एक मतलब रिमोट शाखा, जिसका अर्थ है कि आपको कॉन्फ़िगर करना होगा रिमोट और रन 'गिट fetch ' पहले; आप अपने रेपो में रिमोट शाखा की जांच कर रहे हैं, इसलिए आपको यह सुनिश्चित करना होगा कि यह अद्यतित है। –
Cascabel
निश्चित रूप से, धन्यवाद। मैंने जवाब में इसे शामिल किया। – earl