git - आरएल - यूट्यूब चैनल सेटिंग




मैं यूआरएल कैसे निर्धारित कर सकता हूं कि एक स्थानीय गिट भंडार मूल रूप से क्लोन किया गया था? (13)

origin का आईपी पता / होस्टनाम प्राप्त करने के लिए

ssh:// भंडार:

git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d "/"

git:// भंडार:

git ls-remote --get-url origin | cut -f 2 -d @ | cut -f 1 -d ":"

मैंने कुछ दिन पहले गिटहब से एक परियोजना खींची थी। मैंने तब से पता चला है कि गिटहब पर कई कांटे हैं, और मैंने यह ध्यान देने की उपेक्षा की कि मैंने मूल रूप से कौन सा लिया था। मैं कैसे निर्धारित कर सकता हूं कि मैंने कौन से कांटे खींचा?


अन्य उत्तरों को पूरक करने के लिए: यदि रिमोट किसी कारण से बदल गया है और इसलिए मूल उत्पत्ति को प्रतिबिंबित नहीं करता है, तो रीफ्लॉग में पहली प्रविष्टि (यानी कमांड git reflog द्वारा प्रदर्शित अंतिम प्रविष्टि) को इंगित करना चाहिए कि रेपो कहाँ था मूल रूप से क्लोन से।

जैसे

$ git reflog | tail -n 1
f34be46 [email protected]{0}: clone: from https://github.com/git/git
$

(ध्यान रखें कि रिफ्लॉग को शुद्ध किया जा सकता है, इसलिए यह काम करने की गारंटी नहीं है।)


उत्तर पाने के लिए:

git ls-remote --get-url [REMOTE]

यह विन्यास पढ़ने से बेहतर है; git-ls-remote लिए मैन पेज देखें:

--get-यूआरएल

दिए गए रिमोट रिपॉजिटरी के "url.<base>.insteadOf" किसी भी "url.<base>.insteadOf" कॉन्फ़िगरेशन सेटिंग में ले जाएं ( git-config(1) ) और रिमोट से बात किए बिना बाहर निकलें।

जैसा कि @ जेफ्रोमी द्वारा इंगित किया गया था, यह विकल्प v1.7.5 में जोड़ा गया था और v1.7.12.2 (2012-09) तक दस्तावेज नहीं किया गया था।


क्या आप इसे स्क्रिप्टिंग उद्देश्यों के लिए चाहते हैं, आप केवल यूआरएल प्राप्त कर सकते हैं

git config --get remote.origin.url

गिट यूआरएल गिट कॉन्फ़िगरेशन फ़ाइल के अंदर होगा। मान कुंजी url मेल खाता है:

 cd project_dir
 cat .git/config | grep url | awk '{print $3}'

तुम कोशिश कर सकते हो:

git remote -v

यह आपके सभी रिमोट्स 'फ़ेच / पुश यूआरएल प्रिंट करेगा।


मुझे लगता है कि आप इसे .git/config और remote["origin"] अंतर्गत पा सकते हैं यदि आपने इसका उपयोग नहीं किया है।


मैं गिट कमांड के सभी पैरामीटर कभी याद नहीं रख सकता, इसलिए मैंने ~/.gitconfig फ़ाइल में एक उपनाम लगाया जो मुझे अधिक समझ में आता है, इसलिए मैं इसे याद कर सकता हूं, और इसके परिणामस्वरूप कम टाइपिंग होती है:

[alias]
url = ls-remote --get-url

टर्मिनल को पुनः लोड करने के बाद, आप बस टाइप कर सकते हैं:

> git url

मेरे अक्सर उपयोग किए जाने वाले कुछ और हैं:

[alias]
cd = checkout
ls = branch
lsr = branch --remote
lst = describe --tags

यदि आप किसी शाखा के लिए अपस्ट्रीम रिमोट का नाम नहीं जानते हैं, तो आप उस अपस्ट्रीम शाखा नाम का निरीक्षण करके पहले इसे देख सकते हैं जिस पर वर्तमान शाखा बनाई गई थी। इस तरह git rev-parse प्रयोग करें:

git rev-parse --symbolic-full-name --abbrev-ref @{upstream}

इससे पता चलता है कि अपस्ट्रीम शाखा जो वर्तमान शाखा का स्रोत था। इस तरह रिमोट नाम पाने के लिए इसे पार्स किया जा सकता है:

git rev-parse --symbolic-full-name --abbrev-ref @{upstream} | cut -d / -f 1

अब इसे ले लें और इसे git ls-remote करने के लिए पाइप करें और आपको अपस्ट्रीम रिमोट का यूआरएल मिलेगा जो वर्तमान शाखा का स्रोत है:

git ls-remote --get-url \
  $(git rev-parse --symbolic-full-name --abbrev-ref @{upstream} | cut -d / -f 1)

अब यह ध्यान दिया जाना चाहिए कि यह आवश्यक स्रोत स्रोत रिमोट रिपोजिटरी के समान नहीं है जिसे क्लोन किया गया था। कई मामलों में हालांकि यह पर्याप्त होगा।


यदि आप केवल दूरस्थ यूआरएल चाहते हैं, या संदर्भित अखंडता टूट गई है:

git config --get remote.origin.url

यदि आपको पूर्ण आउटपुट या रेफरेंसियल अखंडता की आवश्यकता है तो यह बरकरार है:

git remote show origin

git clone (गिटहब से, या उस मामले के लिए किसी भी स्रोत भंडार से) का उपयोग करते समय क्लोन के स्रोत के लिए डिफ़ॉल्ट नाम "मूल" होता है। git remote show का उपयोग इस रिमोट नाम के बारे में जानकारी प्रदर्शित करेगा। पहली कुछ पंक्तियां दिखानी चाहिए:

C:\Users\jaredpar\VsVim> git remote show origin
* remote origin
  Fetch URL: [email protected]:jaredpar/VsVim.git
  Push  URL: [email protected]:jaredpar/VsVim.git
  HEAD branch: master
  Remote branches:

यदि आप स्क्रिप्ट में मान का उपयोग करना चाहते हैं, तो आप इस उत्तर में सूचीबद्ध पहले कमांड का उपयोग करेंगे।


संक्षेप में, कम से कम चार तरीके हैं:

(आधिकारिक लिनक्स भंडार के लिए निम्नलिखित की कोशिश की गई थी)

कम जानकारी:

$ git config --get remote.origin.url
https://github.com/torvalds/linux.git

तथा

$ git ls-remote --get-url
https://github.com/torvalds/linux.git

अधिक जानकारी:

$ git remote -v
origin    https://github.com/torvalds/linux.git (fetch)
origin    https://github.com/torvalds/linux.git (push)

और भी जानकारी:

$ git remote show origin
* remote origin
  Fetch URL: https://github.com/torvalds/linux.git
  Push  URL: https://github.com/torvalds/linux.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

.git/config फ़ाइल को खोलने का एक आसान तरीका है:

cat .git/config

संपादित करने के लिए:

vim .git/config या

nano .git/config


#!/bin/bash

git-remote-url() {
 local rmt=$1; shift || { printf "Usage: git-remote-url [REMOTE]\n" >&2; return 1; }
 local url

 if ! git config --get remote.${rmt}.url &>/dev/null; then
  printf "%s\n" "Error: not a valid remote name" && return 1
  # Verify remote using 'git remote -v' command
 fi

 url=`git config --get remote.${rmt}.url`

 # Parse remote if local clone used SSH checkout
 [[ "$url" == [email protected]* ]] \
 && { url="https://github.com/${url##*:}" >&2; }; \
 { url="${url%%.git}" >&2; };

 printf "%s\n" "$url"
}

उपयोग:

# Either launch a new terminal and copy `git-remote-url` into the current shell process, 
# or create a shell script and add it to the PATH to enable command invocation with bash.

# Create a local clone of your repo with SSH, or HTTPS
git clone [email protected]:your-username/your-repository.git
cd your-repository

git-remote-url origin

आउटपुट:

https://github.com/your-username/your-repository




git-remote