উত্তর:
আমি মনে করি সেই উদ্দেশ্যে git ls-remoteকমান্ডটি বেশ তৈরি হয়েছে।
আপনি যদি --exit-codeযুক্তি ব্যবহার করেন তবে আপনি আউটপুট প্রেরণ এড়িয়ে যেতে পারেন null। এটি কেবল ত্রুটির ক্ষেত্রে কিছু ফিরিয়ে দেবে।
এছাড়াও, আপনি -hকেবল প্রধানের উল্লেখগুলি দেখানোর জন্য যুক্তি ব্যবহার করতে পারেন ।
git ls-remote --exit-code -h "$REPO_URL"
-hএকটি দুর্দান্ত ধারণা। তবে, --exit-codeএখানে সঠিক পছন্দ নয়। ম্যান পৃষ্ঠাটি বলে: "2" স্ট্যাটাসের সাথে প্রস্থান করুন যখন দূরবর্তী সংগ্রহস্থলীতে কোনও মিল নেই রেফগুলি পাওয়া যায়। এর অর্থ এটি git ls-remote --exit-code "$REPO_URL"খালি রেপোর জন্য ব্যর্থ হবে যা সবেমাত্র শুরু হয়েছিল git init।
আপনি যেমন কিছু ব্যবহার করে আউটপুট সঙ্কুচিত করতে পারেন git ls-remote "$REPO_URL" HEAD
টি এল; ডিআর:
git ls-remote উপায়টি, এখানে দ্রুত অ্যাক্সেসের জন্য শেল প্রস্তুত ফাংশন রয়েছে:
## Returns errlvl 0 if $1 is a reachable git remote url
git-remote-url-reachable() {
git ls-remote "$1" CHECK_GIT_REMOTE_URL_REACHABILITY >/dev/null 2>&1
}
ব্যবহার:
if git-remote-url-reachable "$url"; then
## code
fi
এটা কি করছে ?
এটি কিছু মন্তব্য / সমাধানগুলির আগে কেবল কিছু ছোট টুইটগুলি, একটি ব্যাশ অনুলিপি-পেস্ট প্রস্তুত ফাংশন এবং স্ফটিক পরিষ্কার করার জন্য ব্যবহারের কোডের নমুনা দিয়ে উল্লিখিত সমস্ত মন্তব্য / সমাধানগুলির একটি সুবিধাজনক ম্যাশ-আপ। আপনি এটি নোট করবেন:
এটি আউটপুটটিকে সীমিত করে দেয় কারণ এটি পরীক্ষা করা রেফারেন্স সম্ভবত অস্তিত্বহীন, git
তবুও ত্রুটি-স্তর 0 দিয়ে মেলানো না হওয়া রেফের সাথে প্রস্থান করবে । এখানে কেবলমাত্র পার্থক্যটি হ'ল জিজ্ঞাসার তুলনায় নেটওয়ার্কে স্থানান্তর করার জন্য সামান্য কম আউটপুট রয়েছে HEAD(এবং রেফের জন্য জিজ্ঞাসা না করা এমনকি কেবলমাত্র মাথার মধ্যে সীমাবদ্ধ করার চেয়ে অনেক কম), এবং এটিও কাস্ট করতে কম আউটপুট /dev/null(তবে এটি শেষটি যাইহোক নগণ্য সময় নিচ্ছে)
রেফ চেক করা হয়েছে তা পরিষ্কার করে দেয় যে আমরা অস্তিত্বের জন্য অনুসন্ধান করছি , আপনি যদি যে সার্ভারটি অনুসন্ধান করছেন তার প্রশাসকদের সাথে যদি আপনি নম্র হতে চান এবং তাদের কিছু পর্যবেক্ষণ করেন তবে তারা কেন এই প্রোবগুলি গ্রহণ করবেন তা বোঝার সুযোগ দেওয়ার ক্ষেত্রে এটি সহায়তা করতে পারে।
/dev/nullমোটামুটি ছোট হওয়া উচিত।