मैं एक दूरस्थ गिट रिपॉजिटरी ("क्या मैं पुश कर सकता हूं?"


85

मैं एक (कुछ सीमित) Git ग्राहक बना रहा हूं। एक रिपॉजिटरी सेट करने के लिए, आप URL को रिमोट रेपो में दर्ज करते हैं। मैं यह जांचना चाहता हूं कि उपयोगकर्ता ने उस रिपॉजिटरी तक पहुंच को पढ़ा है या नहीं। यदि नहीं, तो मैं एक प्रमाणीकरण संवाद प्रस्तुत करता हूं।

मैं के साथ 'पढ़ने' का उपयोग की जाँच करें git ls-remote <url>

क्या पहले रेपो को क्लोन किए बिना, 'राइट' एक्सेस की जांच करने का एक समान तरीका है ? (मुझे पता है कि मैं कर सकता था git clone <url>और फिर git push --dry-run)


2
ठीक है, तकनीकी तौर पर एक प्रतिबद्ध को रेपो में धकेलने के लिए आपको इसे पहले क्लोन करने की आवश्यकता नहीं है। लेकिन याद रखें कि आवागमन की एक श्रृंखला को धक्का देना और दूरस्थ संदर्भों को अपडेट करना दो अलग-अलग ऑपरेशन हैं और आपके पास पूर्व के लिए अनुमति हो सकती है, लेकिन बाद के लिए कोई अनुमति नहीं। इसके अलावा कुछ संदर्भ असंदिग्ध हो सकते हैं।
user3159253

इस पोस्ट में 'git push -dry-run' का उल्लेख लिखने की पहुंच को जांचने के तरीके के रूप में किया गया है, जब आपने क्लोन किया है। हालाँकि मेरे कुछ रीमोट्स के लिए, यह एक पासवर्ड प्रॉम्प्ट खोलता है और अनिश्चित काल तक लटका रहता है। अगर आपके पास रेपो का क्लोन है, भले ही आपके पास पहुंच हो, तो यह देखने के लिए एक गैर-संवादात्मक तरीका नहीं है। यदि मैं इसका क्लोन तैयार करता हूं, तो मैं एक गिट रिपॉजिटरी तक कैसे पहुंच लिख सकता हूं?
rektide

जाँचने का एक बहुत आसान तरीका यह है कि क्या आप README.MD के ऊपरी दाएँ भाग में रेपो के मुख्य कोड पृष्ठ पर एक संपादित 'पेंसिल' आइकन देखते हैं (शीर्ष स्तर की फ़ाइलों / फ़ोल्डरों की एक लंबी सूची होने पर इसे नीचे स्क्रॉल करें) । ऐसा तब करें जब आप जीथब में लॉग इन हों, जाहिर है।
स्पाइक

जवाबों:


71

अगर git repo github में है, तो रेपो में कोई भी फाइल खोलें, फिर 'edit' पर क्लिक करें, github कुछ इस तरह दिखाई देगा:

आप एक ऐसी परियोजना में एक फ़ाइल का संपादन कर रहे हैं जिसमें आपको लिखने की पहुँच नहीं है। हमने आपके प्रस्तावित परिवर्तनों को करने के लिए इस परियोजना का एक कांटा बनाया है। इस फ़ाइल में परिवर्तन सबमिट करने से यह आपके कांटे में एक नई शाखा को लिख देगा, इसलिए आप यहां एक पुल अनुरोध भेज सकते हैं।


22
आप गलत नहीं हैं - गितुब वास्तव में इस व्यवहार को दिखाता है। हालांकि, ओपी ने git ls-remoteअपने नए उपकरण का उपयोग करने के लिए कुछ समान करने के लिए कहा , इसलिए गितुब वेब यूआई शायद उनके अनुरूप नहीं होगा।
RJHunter

12
केवल गिट रिपॉजिटरी की तुलना में अधिक गिट रिपॉजिटरी हैं;)
रेने रोथ

5
जीयूआई के बारे में, टूलटिप यह भी संकेत कर सकता है कि क्या आप "संपादित करें" या "कांटा तो संपादित करें" यदि कोई पहुंच नहीं है। यह जीथब उचित और जीएच एंटरप्राइज दोनों के साथ सच है।
स्कॉट प्रिव

1
एक रेपो फोर्किंग पूरे रेपो को कॉपी करता है, है ना? रेपो बहुत बड़ा हो सकता है। यह देखने के लिए कि आपका पहुंच स्तर क्या है, यह जांचने के लिए एक बहुत बड़ा ऑपरेशन जैसा लगता है ...
काइल डेलाने

2
@KyleDelaney आपको संपादन बटन पर क्लिक करने की आवश्यकता नहीं है, बस इसके ऊपर होवर करें। यह "इस फाइल को संपादित करें" या "इस प्रोजेक्ट के अपने कांटे में फ़ाइल को संपादित करें" दिखाएगा, इस पर निर्भर करता है कि आपके पास लेखन पहुंच है या नहीं।
lev:35 पर

3

आप git push git+ssh://host.org/path/to/repo some_refक्लोनिंग के बिना प्रदर्शन कर सकते हैं । लेकिन मेरी टिप्पणी ऊपर देखें


2
यह विधि रेफरी के साथ काम करने वाली डायरेक्टरी से काम करेगी। क्या डमी रेपो स्थापित करने और पहले कमिटमेंट बनाए बिना ऐसा करने का कोई तरीका है?
यांग मेयर

15
हाँ, इन सभी यादृच्छिक डमी को कौन चाहता है? क्या कोई क्लीनर रास्ता नहीं है?
डेन बोलसर

यह स्वयं करने की कोशिश नहीं की गई है, लेकिन शायद --dry-runपैरामीटर का उपयोग वास्तविक प्रतिबद्ध को धक्का दिए बिना पुश एक्सेस के परीक्षण के लिए किया जा सकता है? git-scm.com/docs/git-push#Documentation/git-push.txt---dry-run
Nathan Friend
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.