এটি যদি আপনার ফায়ারওয়াল গিট: প্রোটোকল পোর্ট (9418) অবরুদ্ধ করে নিয়ে সমস্যা হয় তবে আপনার আরও ধ্রুবক পরিবর্তন করা উচিত যাতে প্রতিটি গিট রেপোর জন্য আপনাকে অন্য পোস্টের দ্বারা প্রস্তাবিত আদেশগুলি মনে রাখতে হবে না।
নীচের সমাধানটি কেবল সাবমডিউলগুলির জন্যও কাজ করে যা গিট: প্রোটোকলও ব্যবহার করতে পারে।
যেহেতু গিট বার্তাটি সত্যই তাত্ক্ষণিকভাবে ফায়ারওয়াল ব্লকিং পোর্ট 9418 এ নির্দেশ করে না তাই আসল সমস্যা হিসাবে এটি নির্ণয়ের চেষ্টা করি।
সমস্যা নির্ণয় করা হচ্ছে
তথ্যসূত্র: https://superuser.com/q/621870/203918 এবং https://unix.stackexchange.com/q/11756/57414
ফায়ারওয়াল আমাদের সমস্যা সৃষ্টি করে কিনা তা নির্ধারণ করতে আমরা বেশ কয়েকটি সরঞ্জাম ব্যবহার করতে পারি - আপনার সিস্টেমে যে কোনও ইনস্টলড রয়েছে তা ব্যবহার করুন।
# Using nmap
# A state of "filtered" against port 9418 (git) means
# that traffic is being filtered by a firewall
$ nmap github.com -p http,git
Starting Nmap 5.21 ( http://nmap.org ) at 2015-01-21 10:55 ACDT
Nmap scan report for github.com (192.30.252.131)
Host is up (0.24s latency).
PORT STATE SERVICE
80/tcp open http
9418/tcp filtered git
# Using Netcat:
# Returns 0 if the git protocol port IS NOT blocked
# Returns 1 if the git protocol port IS blocked
$ nc github.com 9418 < /dev/null; echo $?
1
# Using CURL
# Returns an exit code of (7) if the git protocol port IS blocked
# Returns no output if the git protocol port IS NOT blocked
$ curl http://github.com:9418
curl: (7) couldn't connect to host
ঠিক আছে, সুতরাং এখন আমরা নির্ধারণ করেছি যে এটি আমাদের গিট বন্দরটি ফায়ারওয়াল দ্বারা অবরুদ্ধ, আমরা এটি সম্পর্কে কী করতে পারি? পড়তে :)
বেসিক ইউআরএল পুনর্লিখন
গিট ইউআরএলগুলি ব্যবহার করে পুনরায় লেখার একটি উপায় সরবরাহ করে git config
। কেবল নিম্নলিখিত আদেশটি জারি করুন:
git config --global url."https://".insteadOf git://
এখন, যেমন যাদু দ্বারা পারলে সব Git কমান্ড প্রতিকল্পন সঞ্চালন করা হবে git://
থেকেhttps://
এই আদেশটি কী পরিবর্তন করেছে?
আপনার বিশ্বব্যাপী কনফিগারেশনটি ব্যবহার করে দেখুন:
git config --list
আপনি আউটপুটে নিম্নলিখিত লাইনটি দেখতে পাবেন:
url.https://.insteadof=git://
~/.gitconfig
নিম্নলিখিত দুটি লাইন যুক্ত করা হয়েছে যেখানে আপনি এখন দেখতে পাবেন যে ফাইলটিতে এটি কীভাবে দেখায় তা দেখতে পাবেন :
[url "https://"]
insteadOf = git://
আরও নিয়ন্ত্রণ চান?
কেবল প্রতিস্থাপনে আরও একটি সম্পূর্ণ / নির্দিষ্ট URL ব্যবহার করুন। উদাহরণস্বরূপ, কেবল গিটহাব ইউআরএলগুলি গিট: // এর পরিবর্তে https: // ব্যবহার করতে আপনি এই জাতীয় কিছু ব্যবহার করতে পারেন:
git config --global url."https://github".insteadOf git://github
আপনি বিভিন্ন প্রতিস্থাপন ব্যবহার করে এই কমান্ডটি একাধিকবার চালাতে পারেন। তবে, ইভেন্টটি যে কোনও ইউআরএল একাধিক প্রতিস্থাপনের সাথে মেলে, দীর্ঘতম ম্যাচটি "জিতেছে"। কেবলমাত্র ইউআরএল প্রতি একক প্রতিস্থাপন করা হবে।
সিসাদমিনগুলির জন্য সিস্টেম-ওয়াইড পরিবর্তনসমূহ
আপনি যদি লিনাক্স সিসাদমিন হন এবং আপনি না চান যে আপনার ব্যবহারকারীরা উপরের যন্ত্রণাগুলি কাটাতে পারেন আপনি দ্রুত সিস্টেম-ব্যাপী গিট কনফিগারেশন পরিবর্তন করতে পারেন।
কেবল নীচের বিষয়বস্তুগুলি সম্পাদনা বা যুক্ত করুন /etc/gitconfig
এবং ভোইলা আপনার ব্যবহারকারীদের উপরের কোনওটি সম্পর্কে চিন্তা করতে হবে না:
[url "https://"]
insteadOf = git://