जब आप वाक्य रचना का उपयोग करके अपना पहला क्लोन बनाते हैं
git clone username@server:gitRepo.git
क्या उस प्रारंभिक क्लोन का नाम खोजने के लिए अपने स्थानीय भंडार का उपयोग करना संभव है?
(इसलिए उपरोक्त उदाहरण में, खोजें gitRepo.git
।)
जब आप वाक्य रचना का उपयोग करके अपना पहला क्लोन बनाते हैं
git clone username@server:gitRepo.git
क्या उस प्रारंभिक क्लोन का नाम खोजने के लिए अपने स्थानीय भंडार का उपयोग करना संभव है?
(इसलिए उपरोक्त उदाहरण में, खोजें gitRepo.git
।)
जवाबों:
रिपॉजिटरी रूट में, .git/config
फ़ाइल दूरस्थ रिपॉजिटरी और शाखाओं के बारे में सभी जानकारी रखती है। अपने उदाहरण में, आपको कुछ इस तरह देखना चाहिए:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = server:gitRepo.git
साथ ही, Git कमांड git remote -v
रिमोट रिपॉजिटरी नाम और URL को दिखाता है। "मूल" दूरस्थ रिपॉजिटरी आमतौर पर मूल रिपॉजिटरी से मेल खाती है, जिसमें से स्थानीय प्रति क्लोन की गई थी।
git remote show origin
बस उस रिमोट के बारे में अधिक जानकारी देखने के लिए भी उपयोग कर सकते हैं ।
git remote -v
कि यह केवल पढ़ता है और लिखता है .git/config
।
git config --get remote.origin.url
git remote show origin
नेटवर्क को कॉल करता है।
यह त्वरित बैश कमांड है, जिसे आप शायद खोज रहे हैं, केवल दूरस्थ रिपॉजिटरी के एक बेसनेम को प्रिंट करेगा:
आप कहां से लाएंगे :
basename $(git remote show -n origin | grep Fetch | cut -d: -f2-)
वैकल्पिक रूप से जहाँ आप धक्का देते हैं :
basename $(git remote show -n origin | grep Push | cut -d: -f2-)
विशेष रूप से -n
विकल्प कमांड को बहुत तेज बनाता है।
मैं इस सवाल पर organization/repo
अड़ गया कि जीथ मेजबान या गिटलैब जैसे मेजबान से स्ट्रिंग प्राप्त करने की कोशिश कर रहा है ।
यह मेरे लिए काम कर रहा है:
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
यह केवल संगठन और रेपो नाम के साथ कमांड sed
के आउटपुट को बदलने के लिए उपयोग करता है git config
।
नियमित अभिव्यक्ति में github/scientist
चरित्र वर्ग द्वारा कुछ इस तरह मिलान किया जाएगा [[:graph:]]
।
\1
बस का मिलान नहीं हुआ पात्रों के साथ सब कुछ बदलने के लिए sed बताता है।
git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
git remote show origin -n | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
यह तीन अलग-अलग URL शैलियों के साथ परीक्षण किया गया था:
echo "Fetch URL: http://user@pass:gitservice.org:20080/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
echo "Fetch URL: Fetch URL: git@github.com:home1-oss/oss-build.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'
echo "Fetch URL: https://github.com/owner/repo.git" | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'