গিট একটি বিতরণকৃত সংস্করণ নিয়ন্ত্রণ ব্যবস্থা যা প্রাথমিকভাবে সফ্টওয়্যার বিকাশের সময় সোর্স কোডের পরিবর্তনগুলি ট্র্যাক করতে ব্যবহৃত হয়। GitHub হল Git-ভিত্তিক সংস্করণ নিয়ন্ত্রণের জন্য একটি অনলাইন হোস্টিং পরিষেবা। এই উভয় পরিষেবাই সফ্টওয়্যার বিকাশে ব্যাপকভাবে ব্যবহৃত হয়। যাইহোক, সম্প্রতি ব্যবহারকারীরা "গিট" কমান্ডগুলি চালাতে অক্ষম হওয়ার অসংখ্য প্রতিবেদন রয়েছে৷
তুমি একা নও. আপনি মনে করেন যে আপনি গিট ওয়ার্কফ্লো আয়ত্ত করেছেন যতক্ষণ না আপনি এমন একটি ত্রুটির মধ্যে চলে যাচ্ছেন যা আপনি আগে কখনও দেখেননি। এটি প্রায় অনিবার্য যে আপনি গিট-এর সাথে কাজ করার সময় বিভ্রান্তিকর এবং কখনও কখনও ভীতিজনক ত্রুটি বার্তাগুলির সম্মুখীন হবেন, তাই প্রথমে মনে রাখতে হবে যে অন্যান্য গিট ব্যবহারকারীরা আপনার দুর্দশার সাথে সম্পর্কিত হতে পারে৷
গিট ব্যবহারকারীরা এই বিরক্তিকর গিট মারাত্মক:'অরিজিন' একটি গিট রিপোজিটরি বলে মনে হয় না ত্রুটি. এবং একটি মূল কারণ খুঁজে বের করা কঠিন হতে পারে যদি আপনি কোথায় দেখতে না জানেন। কিন্তু, আপনি গিট ত্যাগ করার আগে, আপনি দ্রুত শিখতে পারেন কি এই ত্রুটির কারণ হচ্ছে, কিভাবে এটি নির্ণয় করা যায় এবং কিভাবে ভবিষ্যতে এটি এড়ানো যায়।
প্রো টিপ:কর্মক্ষমতা সমস্যা, জাঙ্ক ফাইল, ক্ষতিকারক অ্যাপ এবং নিরাপত্তা হুমকির জন্য আপনার Mac স্ক্যান করুন
যা সিস্টেমের সমস্যা বা ধীর কর্মক্ষমতা সৃষ্টি করতে পারে।
টি কি মারাত্মক:'উৎস' একটি গিট রিপোজিটরি বলে মনে হয় না সমস্যা?
git init কমান্ড একটি নতুন গিট সংগ্রহস্থল তৈরি শুরু করে। এই কমান্ডটি কেবল একটি গিট সংগ্রহস্থল হিসাবে একটি ফোল্ডার সেট আপ করে। এটি একটি সংগ্রহস্থল অন্যের সাথে সংযুক্ত করে না৷
৷অন্যদিকে গিট ক্লোন কমান্ড একটি স্থানীয় সংগ্রহস্থলকে দূরবর্তী একটির সাথে সংযুক্ত করে। এর কারণ হল গিট জানে একটি প্রজেক্টের কোড কোথা থেকে উৎপন্ন হয়েছে এবং আপনি যে জায়গাটি ক্লোন করেছেন তা ভবিষ্যদ্বাণী করার জন্য ব্যবহার করে যেখানে আপনি কমিট করতে চান।
যখন আপনি একটি নতুন রিপোজিটরি তৈরি করেন এবং কোডটি কোথায় পুশ করতে হবে সে বিষয়ে প্রথমে গিটকে নির্দেশ না দিয়ে কোড কমিট করার চেষ্টা করেন, আপনি "মারাত্মক:'অরিজিন' একটি গিট রিপোজিটরি বলে মনে হচ্ছে না" ত্রুটি পাবেন৷
গিট রিপোজিটরি কি?
জিআইটি সংগ্রহস্থলে একটি প্রকল্পের বিভিন্ন সংস্করণ থেকে ফাইলের একটি সংগ্রহ রয়েছে। ফাইলের বিষয়বস্তুতে আরও আপডেট এবং পরিবর্তনের জন্য এই ফাইলগুলি ভান্ডার থেকে ব্যবহারকারীর স্থানীয় সার্ভারে আমদানি করা হয়। একটি VCS, বা সংস্করণ নিয়ন্ত্রণ সিস্টেম, এই সংস্করণগুলি তৈরি করতে এবং একটি সংগ্রহস্থল হিসাবে পরিচিত একটি অবস্থানে সংরক্ষণ করতে ব্যবহৃত হয়। ক্লোনিং হল বিভিন্ন গিট টুল ব্যবহার করে বিদ্যমান গিট রিপোজিটরি থেকে কন্টেন্ট কপি করার প্রক্রিয়া।
ক্লোনিং প্রক্রিয়া সম্পন্ন হলে, ব্যবহারকারী তার/তার স্থানীয় মেশিনে সম্পূর্ণ সংগ্রহস্থল গ্রহণ করে। একবার ক্লোনিং সম্পূর্ণ হলে, গিট অনুমান করে যে রিপোজিটরিতে ভবিষ্যতের সমস্ত কাজ একজন ব্যবহারকারী হিসাবে করা হবে। ব্যবহারকারীরা নতুন সংগ্রহস্থল তৈরি করতে বা বিদ্যমানগুলি মুছতে পারেন। একটি সংগ্রহস্থল মুছে ফেলার সবচেয়ে সহজ উপায় হল কেবল সংগ্রহস্থলের ফোল্ডারটি মুছে ফেলা।
গিট রিপোজিটরিগুলির সাথে কাজ করার সময়, আপনি মূলত গিট প্রকল্প হিসাবে কনফিগার করা ডিরেক্টরিগুলির সাথে কাজ করছেন। আপনার স্থানীয় কম্পিউটারে বা দূরবর্তী সার্ভারে প্রায় যেকোনো ডিরেক্টরি তৈরি করতে গিট ব্যবহার করা যেতে পারে।
আপনার গিট প্রকল্প কেন কমান্ড গ্রহণ করছে না বা কেন আপনার দূরবর্তী সংগ্রহস্থলগুলি স্বীকৃত হচ্ছে না তা সঠিকভাবে নির্ণয় করার জন্য, আপনাকে প্রথমে বুঝতে হবে যে একটি সংগ্রহস্থলের সাথে ইন্টারঅ্যাক্ট করার চেষ্টা করার সময় গিট কী সন্ধান করে৷
যেকোন ডিরেক্টরি, স্থানীয় বা দূরবর্তী, অবশ্যই গিট-ইনিশিয়ালাইজড হতে হবে, যার মানে আপনাকে অবশ্যই নিম্নলিখিত কমান্ডটি চালাতে হবে:git init
আপনি যদি স্থানীয় ডিরেক্টরিতে এই কমান্ডটি চালান তবে সেই ডিরেক্টরিটি একটি গিট সংগ্রহস্থলে রূপান্তরিত হবে। একটি সফল বার্তা প্রদর্শিত হবে, নির্দেশ করে যে কমান্ডটি সফল হয়েছে। আপনি আরও লক্ষ্য করবেন যে প্রতিটি গিট সংগ্রহস্থলে একটি .git ডিরেক্টরি থাকে যেখানে গুরুত্বপূর্ণ ফাইল এবং রেফারেন্স পয়েন্ট সংরক্ষণ করা হয়।
অন্যদিকে, এটি -bare ব্যবহার করার প্রথাগত একটি দূরবর্তী সংগ্রহস্থল শুরু করার সময় বিকল্প:git init –bare
এটি একটি "বেয়ার" সংগ্রহস্থল তৈরি করে, যা মূলত একটি ফাঁকা ডিরেক্টরি যা গিট দিয়ে শুরু করা হয়েছে এবং এটিতে প্রেরিত গিট কমান্ডগুলি গ্রহণ এবং চালাতে সক্ষম। বেয়ার রিপোজিটরি হল একটি চমৎকার "হাব" যেখান থেকে এক বা একাধিক গিট ব্যবহারকারী একটি প্রোজেক্টকে ক্লোন করতে, পুশ করতে এবং টানতে পারে৷
একটি গিট সংগ্রহস্থল একটি দূরবর্তী সংগ্রহস্থলের সাথে স্বয়ংক্রিয়ভাবে লিঙ্ক করা হয় না। আপনি "মারাত্মক:'অরিজিন' একটি গিট রিপোজিটরি বলে মনে হচ্ছে না" ত্রুটিটি পাবেন যদি আপনি একটি দূরবর্তী সংগ্রহস্থলে প্রথমে তার অবস্থান উল্লেখ না করে পরিবর্তনগুলি পুশ করার চেষ্টা করেন৷
কী কারণে মারাত্মক 'অরিজিন' একটি গিট রিপোজিটরি বলে মনে হয় না ত্রুটি?
আপনি যখন গিট রিপোজিটরি হিসাবে স্বীকৃত নয় এমন একটি ডিরেক্টরিতে অন্যান্য কমান্ড ক্লোন বা চালানোর চেষ্টা করেন, তখন "মারাত্মক:'অরিজিন' একটি গিট সংগ্রহস্থল বলে মনে হয় না" ত্রুটি ঘটে। এটা সম্ভব যে ডিরেক্টরি বা দূরবর্তী ফাইল পাথ গিটকে আরম্ভ করেনি, অথবা আপনি যে ফাইল পাথটি সক্রিয় সংগ্রহস্থল হিসাবে অ্যাক্সেস করার চেষ্টা করছেন সেটি ভুল। এই ত্রুটির কারণগুলি এখানে রয়েছে:
- অরিজিন অনুপস্থিত:এই ত্রুটিটি ঘটে যখন "অরিজিন" ক্ষেত্রটি অনুপস্থিত থাকে। কিছু কমান্ড সঠিকভাবে কাজ করে না যদি "Github-Fork" এর রেফারেন্স অনুপস্থিত থাকে।
- ভুল URL:কিছু ক্ষেত্রে, অ্যাপ্লিকেশন দ্বারা সেট করা URL কনফিগারেশন ভুল হতে পারে এবং অবশ্যই পরিবর্তন করতে হবে৷ ফলস্বরূপ, কিছু কমান্ড সঠিকভাবে কাজ নাও করতে পারে।
গিট মূলত ইঙ্গিত করে যে আপনি যে সংগ্রহস্থলের সাথে কাজ করার চেষ্টা করছেন তা একটি গিট প্রকল্প হিসাবে অচেনা। এই কারণেই, আপনি যদি বিশ্বাস করেন যে আপনি সবকিছু সঠিকভাবে সেট আপ করেছেন, ত্রুটিটি হতাশাজনক হতে পারে। তবে চিন্তা করবেন না, একটি সাধারণ টাইপো ত্রুটির কারণ হতে পারে৷
৷আমরা এখন সমাধানগুলি নিয়ে যাব যাতে আপনার সমস্যার প্রকৃতি সম্পর্কে প্রাথমিক ধারণা থাকে৷ এই ত্রুটি নির্ণয় এবং চিকিত্সা করতে আপনি কি করতে পারেন তা খুঁজে বের করতে পড়া চালিয়ে যান৷
৷কীভাবে মারাত্মক সমস্যা সমাধান করবেন:'অরিজিন/মাস্টার' একটি গিট রিপোজিটরি বলে মনে হচ্ছে না' ত্রুটি
এই ত্রুটিটি পেতে হতাশাজনক হতে পারে কারণ এটি ব্যাঘাতমূলক এবং সময়সাপেক্ষ। "মারাত্মক উত্স একটি গিট রিপোজিটরি বলে মনে হয় না" এর মতো সমস্যাগুলি এড়ানোর একটি উপায় হল আউটবাইট ম্যাক্যারিসের সাথে নিয়মিত আপনার ডিভাইস স্ক্যান করা। এই টুলটি ছোটখাটো সমস্যাগুলিকে তৈরি হতে এবং সম্পূর্ণ বিশৃঙ্খলায় পরিণত হতে বাধা দেয়।
কিন্তু আপনি যদি এই ত্রুটির সম্মুখীন হন, তাহলে এই পদক্ষেপগুলি সহজেই আপনার জন্য এটি সমাধান করবে:
ফিক্স #1:মূল যোগ করুন।
আপনি যখন গিট ইনিট কমান্ডের সাহায্যে তৈরি করা একটি নতুন গিট রিপোজিটরিতে প্রতিশ্রুতিবদ্ধ করার চেষ্টা করেন, আপনি "মারাত্মক:'অরিজিন' একটি গিট রিপোজিটরি বলে মনে হচ্ছে না" ত্রুটি পাবেন। এটি এই কারণে যে git init একটি স্থানীয় সংগ্রহস্থলকে একটি দূরবর্তী সংগ্রহস্থলের সাথে লিঙ্ক করে না। আপনি টাইপ করে এটি পরীক্ষা করতে পারেন:git remote -v
যদি অরিজিন বলে কোনো রিমোট রিপোজিটরি না থাকে , আপনি ম্যানুয়ালি নীচের সমাধান অনুসরণ করে এটি যোগ করা উচিত।
- “কমান্ড টিপুন ” এবং “স্পেস ” একই সময়ে বোতাম। এটি স্পটলাইট খুলতে হবে৷
- “টার্মিনাল-এ টাইপ করুন ” এবং “রিটার্ন টিপুন ।"
- নিম্নলিখিত কমান্ডটি প্রবেশ করান এবং “রিটার্ন টিপুন ” কী:git remote -v
- “অরিজিন নামে একটি দূরবর্তী সংগ্রহস্থল কিনা তা দেখতে পরীক্ষা করুন ” তালিকাভুক্ত।
- যদি তা না হয়, তার মানে আপনার "উৎস" অনুপস্থিত৷ ৷
- অরিজিন যোগ করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:গিট রিমোট অ্যাড অরিজিন ইউআরএল/টু/আপনার/ফর্ক
সমস্যাটি এখনও বিদ্যমান কিনা তা পরীক্ষা করুন৷
ফিক্স #2:আপনার রিমোট রিপোজিটরির ফাইল পাথ চেক করুন।
রিমোট রিপোজিটরি থেকে কন্টেন্ট ক্লোন, পুশ বা টেনে আনার চেষ্টা করার সময়, একজন গিট ব্যবহারকারী প্রায়ই "গিট রিপোজিটরি মারাত্মক বলে মনে হচ্ছে না" ত্রুটির সম্মুখীন হবেন। রিমোট রিপোজিটরির ফাইল পাথ ডাবল চেক করতে ভুলবেন না। এর জন্য বেশ কিছু পন্থা আছে।
আপনি যদি ক্লোনিং করেন তবে আপনার প্রয়োজনীয় সংগ্রহস্থল অ্যাক্সেস আছে কিনা তা দুবার চেক করুন। আপনি GitHub-এ একটি পাবলিক রিপোজিটরি ক্লোন না করা পর্যন্ত, আপনি সম্ভবত SSH এর মাধ্যমে সংযোগ করছেন। একইভাবে, আপনার ক্লোন কমান্ডের সিনট্যাক্স পরীক্ষা করা উচিত। এখানে একটি মৌলিক ক্লোন কমান্ডের উদাহরণ রয়েছে যা HTTP এর মাধ্যমে সংগ্রহস্থলের সাথে সংযোগ করে:git clone https://github.com/WordPress/WordPress.git
আপনি যখন আপনার পছন্দের টার্মিনাল এমুলেটরে এই কমান্ডটি চালান, তখন এটি "ওয়ার্ডপ্রেস" নামে একটি ডিরেক্টরি তৈরি করবে যাতে ওয়ার্ডপ্রেসের সমস্ত মূল ফাইল থাকে। এটি .git ডিরেক্টরি এবং সমগ্র প্রকল্প ইতিহাস অন্তর্ভুক্ত করবে। ফলস্বরূপ, এই ডিরেক্টরিটি একটি সম্পূর্ণ কার্যকরী স্থানীয় গিট সংগ্রহস্থল হবে। এটিতে রিমোট রিপোজিটরি তথ্য (GitHub-এ) সঠিকভাবে সেট আপ করা হবে।
যাইহোক, আপনি যদি এমন একটি ব্যক্তিগত সার্ভারের সাথে যোগাযোগ করেন যার HTTP অ্যাক্সেস নেই, তাহলে আপনাকে অবশ্যই এই সিনট্যাক্সটি সংশোধন করতে হবে যাতে উপযুক্ত সুবিধা সহ সার্ভার ব্যবহারকারী অন্তর্ভুক্ত হয়। এই কারণেই, একটি ব্যক্তিগত গিট সার্ভার কনফিগার করার সময়, সংগ্রহস্থল অ্যাক্সেস সহ একটি বিশেষ "Git" ব্যবহারকারী তৈরি করা একটি ভাল ধারণা:git clone [email protected]:/home/user/production.git>
GitHub থেকে HTTP বৈকল্পিক থেকে ভিন্ন, এই ক্লোন URLটিতে [email protected] অন্তর্ভুক্ত রয়েছে এই ক্ষেত্রে, "ব্যবহারকারী" হল একটি সার্ভার ব্যবহারকারী যার সার্ভারের গিট সংগ্রহস্থলে অ্যাক্সেস এবং সুবিধা রয়েছে৷ আপনি যে সার্ভারের সাথে যোগাযোগ করার চেষ্টা করছেন তার হোস্টনাম, ডোমেন নাম বা IP ঠিকানা হল গন্তব্য৷ ব্যবহারকারী এবং সার্ভারের ঘোষণা একটি কোলন (:) দ্বারা ফাইল পাথ থেকে পৃথক করা হয়।
এই ক্ষেত্রে ফাইল পাথ গুরুত্বপূর্ণ। আপনার সংগ্রহস্থলের সঠিক অবস্থান এবং নাম ফাইল পাথ দ্বারা নির্দেশিত হয়। পূর্ববর্তী উদাহরণে সংগ্রহস্থল হল production.git. নামে একটি ডিরেক্টরি
আপনার সংগ্রহস্থল ডিরেক্টরির জন্য সর্বদা .git এক্সটেনশন ব্যবহার করুন। production.git ডিরেক্টরিটি ব্যবহারকারীর হোম ডিরেক্টরিতে অবস্থিত, যা হল/home/user.
আপনাকে অবশ্যই এই সিনট্যাক্সটি সঠিকভাবে প্রতিলিপি করতে হবে অথবা আপনি "মারাত্মক:'উৎস' একটি গিট রিপোজিটরি বলে মনে হচ্ছে না" ত্রুটি পাবেন৷
ফিক্স #3:মূলকে মাস্টারে পরিবর্তন করুন।
আপনি যদি মাস্টার থেকে টেনে আনার চেষ্টা করছেন, তাহলে রিমোট রিপোজিটরি যোগ করার বা অপসারণ করার চেষ্টা করার আগে আপনাকে অবশ্যই মূলটি মাস্টারে পরিবর্তন করতে হবে। ফলস্বরূপ, এই ধাপে, আমরা মূলকে মাস্টারে পরিবর্তন করব। এটি করতে:
- “কমান্ড টিপুন ” এবং “স্পেস ” একই সময়ে বোতাম। এটি স্পটলাইট খুলতে হবে৷
- “টার্মিনাল-এ টাইপ করুন ” এবং “রিটার্ন টিপুন ।"
- অরিজিনকে মাস্টারে পরিবর্তন করতে এখানে কমান্ডটি লিখুন:গিট পুল অরিজিন মাস্টার
"মারাত্মক:'অরিজিন' একটি গিট রিপোজিটরি বলে মনে হচ্ছে না" সমস্যাটি অদৃশ্য হয়ে গেছে কিনা তা পরীক্ষা করুন৷
ফিক্স #4:নষ্ট হেড ফাইল ঠিক করুন।
যদি উপরের সমস্যা সমাধানের পদক্ষেপগুলি আপনার সমস্যার সমাধান না করে, তাহলে আপনার HEAD ফাইলে সমস্যা হতে পারে। এই ফাইলটিতে একটি লাইন রয়েছে যা আপনার বর্তমান শাখার নির্দেশক হিসাবে কাজ করে৷
আপনি যদি Git-এ নতুন হন, তাহলে "শাখা" শব্দটিও আপনার কাছে অপরিচিত হতে পারে। একটি শাখা হল আপনার সংগ্রহস্থলের একটি সংস্করণ যা আপনি প্রকল্পের পরিবর্তনগুলি পরীক্ষা করতে ব্যবহার করতে পারেন। প্রতিটি সংগ্রহস্থলের একটি প্রধান শাখা রয়েছে যা সত্যের উত্স হিসাবে কাজ করে এবং এটি এমন সংস্করণ হওয়া উচিত যা উত্পাদনে স্থাপন করা হয়। আপনি যদি প্রধান শাখায় পরিবর্তন করতে চান, তবে পরিবর্তনগুলি পরীক্ষা করার জন্য আপনি আপনার প্রকল্পের একটি পৃথক সংস্করণ বা শাখা তৈরি করতে পারেন। যখন আপনি একটি নতুন শাখা তৈরি করবেন তখন গিট আপনার বর্তমান কর্মরত শাখাকে প্রতিফলিত করতে HEAD ফাইলটি আপডেট করবে।
যাইহোক, HEAD ফাইলটি কিছু ক্ষেত্রে দূষিত হতে পারে, যার ফলে মারাত্মক:'Origin' একটি Git Repository বলে মনে হয় না। ত্রুটি. HEAD ফাইলটি পরীক্ষা করতে, আপনি cat .git/HEAD ব্যবহার করতে পারেন বিষয়বস্তু প্রিন্ট করার নির্দেশ।
আপনি যখন এই কমান্ডটি চালান, তখন আপনার বর্তমান শাখার নাম দেখতে হবে। আপনি যে বর্তমান শাখায় কাজ করছেন সেটি যদি এতে অন্তর্ভুক্ত না হয়, তাহলে আপনাকে অবশ্যই ফাইলটি আপডেট করতে হবে। আপনি নিম্নলিখিত কমান্ডটি টাইপ করে এটি করতে পারেন: echo 'ref:refs/heads/
র্যাপিং আপ
আপনি যখন মারাত্মকের মুখোমুখি হন তখন আপনাকে চাপ দিতে হবে না:'অরিজিন' একটি গিট রিপোজিটরি ত্রুটি বলে মনে হচ্ছে না। আপনি যদি এই সমস্যাটি পান তবে মনে রাখবেন যে গিট আপনাকে জানানোর চেষ্টা করছে যে আপনার বর্তমান কাজের ডিরেক্টরিটি ট্র্যাক করা হচ্ছে না, তাই এই নিবন্ধে বর্ণিত মৌলিক পদক্ষেপগুলি অনুসরণ করুন, যা নীচে সংক্ষিপ্ত করা হয়েছে:
- ম্যানুয়ালি মূল যোগ করুন।
- আপনি সঠিকভাবে ডিরেক্টরির নাম টাইপ করেছেন কিনা তা পরীক্ষা করুন।
- আপনি সঠিকভাবে সংগ্রহস্থল তৈরি করেছেন কিনা তা পরীক্ষা করুন। যদি ডিরেক্টরিতে .git সংগ্রহস্থলের অভাব থাকে, তাহলে git init ব্যবহার করুন সঠিকভাবে রিপোজিটরি শুরু করতে বা বিদ্যমান রিপোজিটরি ক্লোন করতে।
- আপনার বর্তমান শাখায় আপনার HEAD ফাইলে সঠিক তথ্য আছে কিনা পরীক্ষা করুন। যদি না হয়, ফাইলের বিষয়বস্তুগুলিকে রেফ:রেফস/হেডস/
এ পরিবর্তন করুন
উপরে বর্ণিত সমস্যা সমাধানের পদক্ষেপগুলি অনুসরণ করলে আপনি প্রায় প্রতিটি ক্ষেত্রে মাত্র কয়েক মিনিটের মধ্যে ত্রুটিটি সমাধান করতে পারবেন৷