क्या git का उपयोग करके सभी मौजूदा रिपॉजिटरी को सूचीबद्ध करने का कोई तरीका है?


22

एक क्लोन रिपॉजिटरी को क्लोन करने के लिए एक रिपॉजिटरी का नाम होना चाहिए। कई रिपॉजिटरी के साथ काम करते समय सभी अलग-अलग नामों को याद रखना मुश्किल हो सकता है, इसलिए अब मैं सोच रहा हूं कि क्या कुछ git कमांड का उपयोग करके रिमोट सर्वर पर सभी मौजूदा रिपॉजिटरी को सूचीबद्ध करना संभव है।


क्या आप अपने उत्तर को अपने प्रश्न को संपादित करने के बजाय एक अलग उत्तर के रूप में पोस्ट कर सकते हैं?
माटुस्ज़ कोनसीज़नी

जवाबों:


8

आपको गिट-डेमॉन की मेजबानी करने वाली मशीन तक शेल एक्सेस की आवश्यकता होगी और देख सकते हैं कि गिट्स -डेमन को आमंत्रित करने के लिए उपयोग किए जाने वाले पैरामेट्स या गिटवेब नामक गिट वेब फ्रंटेंड (रिपॉजिटरी ब्राउज़र) का उपयोग करें

इस मौजूदा प्रश्न का भी संदर्भ लें

एक और तरीका है, लेकिन इसमें आपको कुछ मदद की ज़रूरत है, जो कि कंपनी के सर्वरों को मिलती है। Git में 'GitWeb' नाम की एक ब्राउज़ करने योग्य वेब सीमा है, जिसे git द्वारा दी गई सभी परियोजनाओं को दिखाने के लिए कॉन्फ़िगर किया जा सकता है।

विवरण GitWeb README में समझाया गया है - ब्याज की विन्यास कुंजी को "GITWEB_PROJECTOT" कहा जाता है:

GITWEB_PROJECTROOT The root directory for all projects shown by gitweb. Must be set correctly for gitweb to find repositories to display. See also "Gitweb repositories" in the INSTALL file for gitweb.

हो सकता है कि आपके साथ आपकी कोई बातचीत हो - gitweb सभी डेवलपर्स के लिए एक बहुत अच्छा लाभ हो सकता है।

जहां तक ​​मैं बता सकता हूं, यह उस मशीन पर किया जाना चाहिए जो गिट-डेमॉन चला रही है। आपको या तो उन तर्कों की जाँच करने की ज़रूरत है जहाँ git-daemon का आह्वान किया गया था, या संभवतः /etc/inetd.conf जाँचें


0

चूँकि मेरे पास रिमोट मशीन तक पहुंच थी, इसलिए मैंने एक छोटी fabricस्क्रिप्ट लिखी जो टर्मिनल से सभी रिमोट रिपॉजिटरी को सूचीबद्ध करने के लिए चलाई जा सकती थी:

#!/bin/python

from fabric.api import run, env
from fabric.colors import green 

env.hosts = ['<hostname>'];
env.user = '<user>';
env.password = '<password>';

def lr():
  "Lists all remote repositories"
  print(green("listing remote repos"))
  run('cd /var/git; ls -al')

अब मैं टर्मिनल से निम्नलिखित आदेश जारी करके सभी दूरस्थ रिपॉज़िटरों को सूचीबद्ध कर सकता हूं:

fab lr

ध्यान दें कि यह स्क्रिप्ट मानती है कि git रिपॉजिटरी में स्थित हैं /var/git। हालांकि यह आमतौर पर मामला है, यह हमेशा सच नहीं है।
डेव शेरोहमान

0

यह बहुत हद तक इस बात पर निर्भर करता है कि उन रिपॉजिटरी को कैसे एक्सेस किया जाता है, इसलिए वास्तव में एक सरल-आकार-फिट-सभी जवाब नहीं है:

  • यदि रिपोज द्वारा git-daemonऔर / या सेवा की जा रही है gitweb, तो आप यह देखने के लिए कि यह उसके रिपॉज को रखता है और उस डायरेक्टरी की सामग्री को सूचीबद्ध करने के लिए कॉन्फिग को देख सकते हैं।
  • यदि रेपो को ssh के माध्यम से एक्सेस किया जाता है, तो वे फाइल सिस्टम में कहीं भी स्थित हो सकते हैं। आप सिस्टम पर सभी निर्देशिकाओं को ढूंढने में सक्षम होना चाहिए जिसका नाम फ़ाइल जैसी प्रणाली है HEAD(उदाहरण के लिए locate HEAD | grep \/HEAD$), लेकिन यह गलत सकारात्मक उत्पन्न कर सकता है और यह किसी भी प्रतिनिधि को दिखाएगा जो पूरी तरह से स्थानीय कामकाजी निर्देशिका हैं और जिन्हें साझा नहीं किया गया है या उनसे क्लोन किया गया है एक अन्य स्रोत।
  • यदि रिपिट gitlab द्वारा प्रबंधित किया जाता है , तो वे फ़ाइल सिस्टम में बिल्कुल नहीं हैं, इसलिए आपको उन्हें सूचीबद्ध करने के लिए gitlab वेब इंटरफ़ेस का उपयोग करने की आवश्यकता है। ध्यान दें कि कुछ रिपॉजिट इस सूची से छिपे हो सकते हैं यदि आपके पास उन्हें एक्सेस करने की अनुमति नहीं है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.