গিট থেকে আপনি ক্লোন করেছেন এমন মূল ভান্ডারটির নাম সন্ধান করছেন


118

আপনি যখন সিনট্যাক্স ব্যবহার করে আপনার প্রথম ক্লোন করবেন

git clone username@server:gitRepo.git

Initial প্রাথমিক ক্লোনটির নাম খুঁজে পাওয়া কি আপনার স্থানীয় সংগ্রহশালা ব্যবহার করে সম্ভব?

(সুতরাং উপরের উদাহরণে, সন্ধান করুন gitRepo.git।)


উত্তর:


91

সংগ্রহস্থল রুটে .git/configফাইলটি দূরবর্তী সংগ্রহস্থল এবং শাখা সম্পর্কিত সমস্ত তথ্য ধারণ করে। আপনার উদাহরণে, আপনার এমন কিছু সন্ধান করা উচিত:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = server:gitRepo.git

এছাড়াও, গিট কমান্ড git remote -vদূরবর্তী সংগ্রহস্থলের নাম এবং URL প্রদর্শন করে। "উত্স" দূরবর্তী সংগ্রহস্থল সাধারণত মূল সংগ্রহস্থলের সাথে মিলে যায়, যা থেকে স্থানীয় অনুলিপি ক্লোন করা হয়েছিল।


16
আপনি git remote show originকেবল সেই দূরবর্তী সম্পর্কে আরও অনেক তথ্য দেখতে ব্যবহার করতে পারেন।
ক্যাসকেবেল

1
দেখে মনে হচ্ছে এই দুটি পদ্ধতি উত্তরটিতে সমান - এটি git remote -vকেবল পড়ে এবং লেখায় বলে মনে হয় .git/config
ফ্লো 2 কে

103
git config --get remote.origin.url

2
একমত; এটি সেরা কারণ এটি গিট রিমোট সার্ভারের সাথে সংযোগ / প্রমাণের প্রয়োজন নেই। ওপি "আপনার স্থানীয় সংগ্রহশালা ব্যবহার করে" জিজ্ঞাসা করেছে তবে git remote show originনেটওয়ার্কে কল করেছে।
ট্র্যাভিস উইলসন

1
কেসির উত্তর হিসাবে এটি একটি বেসনামে জড়িত ভাল কাজ করে
জোনাথন ড্র্যাপো

29

এটি তাত্ক্ষণিক বাশ আদেশ, যা আপনি সম্ভবত সন্ধান করছেন, এটি দূরবর্তী সংগ্রহস্থলের কেবলমাত্র একটি বেস প্রিন্ট করবে:

আপনি যেখান থেকে আনছেন :

basename $(git remote show -n origin | grep Fetch | cut -d: -f2-)

বিকল্পভাবে যেখানে আপনি ধাক্কা থেকে :

basename $(git remote show -n origin | grep Push | cut -d: -f2-)

বিশেষত -nবিকল্পটি কমান্ডটিকে আরও দ্রুত তৈরি করে।


11

আমি এটি ব্যবহার:

basename $(git remote get-url origin) .git

যা কিছু ফিরে gitRepo। ( .gitএরকম কিছু ফেরত দেওয়ার জন্য কমান্ডের শেষে অপসারণ করুন gitRepo.git))

(দ্রষ্টব্য: এটির গিট সংস্করণ ২. 2..০ বা তার পরে প্রয়োজন)


2

organization/repoগিথুব বা গীতলবের মতো গিট হোস্টের কাছ থেকে স্ট্রিংটি নেওয়ার চেষ্টা করে আমি এই প্রশ্নটিতে হোঁচট খেয়েছি।

এটি আমার পক্ষে কাজ করছে:

git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'

এটি কমান্ডের sedআউটপুটকে git configকেবল সংগঠন এবং রেপো নামের সাথে প্রতিস্থাপন করতে ব্যবহার করে ।

নিয়মিত অভিব্যক্তিতে github/scientistচরিত্র শ্রেণীর সাথে কিছু [[:graph:]]মিলবে।

দ্য \1সিড সব কিছু ঠিক ম্যাচযুক্ত অক্ষরের সাথে প্রতিস্থাপন করতে বলে।


টাইপ করুন শেষটি .git ---- এর পরিবর্তে .get বলছেন git config --get remote.origin.url | sed -e 's/^git@.*:\([[:graph:]]*\).git/\1/'
মিসিলেন্স

ধন্যবাদ @ ম্যাসিলেন্স, স্থির।
jhnstn

0
git remote show origin -n | ruby -ne 'puts /^\s*Fetch.*(:|\/){1}([^\/]+\/[^\/]+).git/.match($_)[2] rescue nil'

এটি তিনটি ভিন্ন ইউআরএল স্টাইল দিয়ে পরীক্ষা করা হয়েছিল:

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'

1
আপনি কী করেছিলেন, কীভাবে জবাব দেবেন
মেহের

সম্ভবত আরও তথ্য যুক্ত করুন, উদাহরণস্বরূপ রুবি নির্ভরতা এবং কোন প্ল্যাটফর্মের উপর এটি পরীক্ষা করা হয়েছিল (সহ সংস্করণ তথ্য)।
পিটার মর্টেনসেন

0

এটি মান পেতে কাজ করবে।

#!/usr/bin/env bash
repoSlug="$(git config --get remote.origin.url | cut -d/ -f5 | cut -d. -f1)"
echo ${repoSlug}

0

গিট রেপো নামের কমান্ডের পাওয়ারশেল সংস্করণ:

(git config --get remote.origin.url) -replace '.*/' -replace '.git'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.