কম্পিউটার

গিট বিচ্ছিন্ন হেড

যদিও আপনি একটি বিচ্ছিন্ন মাথার সমস্যার সম্মুখীন নাও হতে পারেন, তবে এটি সম্পর্কে জানা গুরুত্বপূর্ণ যাতে আপনি এটি এড়াতে পারেন। একটি সুপারিশ হিসাবে একটি বিচ্ছিন্ন হেডে প্রতিশ্রুতিবদ্ধ হবেন না তবে আপনি যদি তা করেন তবে আমরা আপনাকে দেখাব কিভাবে আপনার প্রতিশ্রুতিগুলি সংরক্ষণ করবেন৷

একটি অনুস্মারক

HEAD কী তা বোঝার জন্য, আসুন Git-এর অন্তর্নিহিত গাছের মতো কাঠামোর উপর একটি রিফ্রেশার করি।

  1. ওয়ার্কিং ডিরেক্টরি:বা ওয়ার্কিং ট্রি। এটি আপনার স্থানীয় ডিরেক্টরি এবং git status বোঝায় আপনাকে আপনার কাজের ডিরেক্টরির অবস্থা দেবে।
  2. হেড:এটি শুধুমাত্র আপনার বর্তমান শাখার শেষ কমিট স্ন্যাপশট। আপনি যদি git checkout দিয়ে শাখা পরিবর্তন করতে চান তারপর HEAD শাখার শেষ কমিটে পরিবর্তিত হবে।
  3. সূচী:বা স্টেজিং এরিয়া, তাই যখন আপনি git add ফাইলগুলি এই সূচীতে যোগ করে।

সংযুক্ত হেড বোঝা

এখন আমরা বুঝতে পেরেছি যে HEAD আপনি যে বর্তমান শাখায় আছেন তার সর্বশেষ প্রতিশ্রুতি। git status করে এটি আপনার শাখাকে বলবে যেমন On branch master এবং git log করে এটি তথ্য সহ আপনার প্রতিশ্রুতি ইতিহাসকে বলবে যেমন:

কমিট 38373004b8f651b58cea64cd629e1e2c18c164a0 (HEAD -> মাস্টার, অরিজিন/মাস্টার, অরিজিন/HEAD)লেখক:ফেলিপ <ইমেল>তারিখ:বুধবার সেপ্টেম্বর 29 22:57:50> - পূর্ববর্তী 

তারপরে যদি আমরা আমাদের শাখা পরিবর্তন করতে চাই তাহলে git checkout development দিয়ে ডেভেলপমেন্ট ব্রাঞ্চ বলি তারপর হেড শেষ কমিট এ চলে যাবে। সুতরাং এই সমস্ত স্বাভাবিক ক্ষেত্রে প্রধান আমাদের অনুসরণ করছে কারণ এটি আমরা যে শাখায় আছি তার একটি শেষ প্রতিশ্রুতির সাথে সংযুক্ত থাকার কথা৷

হেড বিচ্ছিন্ন করা

আমরা আমাদের মাথা বিচ্ছিন্ন করতে পারি এমন কয়েকটি উপায় আছে।

  • git checkout --detach ব্যবহার করে আদেশ।
  • একটি কমিট হ্যাশ চেকআউট করুন। যেমন যদি আমরা উপরে থেকে প্রতিশ্রুতি ব্যবহার করি git checkout 38373004b8f651b58cea64cd629e1e2c18c164a0
  • যে কোনো শাখায় ^0 যোগ করে। যেমন git checkout master^0 .

আপনি ইচ্ছাকৃতভাবে HEAD বিচ্ছিন্ন করতে চান কিনা আমি নিশ্চিত নই। তাই সবচেয়ে সাধারণ ঘটনা হল যে ভুল করে আপনি একটি শাখায় চেকআউট করতে চেয়েছিলেন এবং শাখার নামের পরিবর্তে একটি কমিট হ্যাশ ব্যবহার করেছেন।

তাই একটি বিচ্ছিন্ন মাথা পরে কি হবে? আপনি এর অনুরূপ একটি সতর্কতা পেতে পারেন:

$ git চেকআউট 38373004b8f651b58cea64cd629e1e2c18c164a0 দ্রষ্টব্য:'38373004b8f651b58cea64cd629e1e2c18c164a0' এ 'AD' অবস্থায় আছে চেক আউট। আপনি চারপাশে দেখতে পারেন, পরীক্ষামূলক পরিবর্তন করতে পারেন এবং তাদের প্রতিশ্রুতি দিতে পারেন, এবং অন্য চেকআউট সম্পাদন করে কোনো শাখাকে প্রভাবিত না করে আপনি এই অবস্থায় আপনার করা যেকোনো প্রতিশ্রুতি বাতিল করতে পারেন।

একবার বিচ্ছিন্ন হেড পরিবেশে, যদি আপনি git status করেন যদিও আপনি পরিবর্তন করেছেন, এটি এরকম কিছু বলবে:

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগদানের পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।

AC63806-এ হেড বিচ্ছিন্ন, প্রতিশ্রুতি দেওয়ার কিছু নেই, গাছ পরিষ্কার করা হচ্ছে

সুতরাং এটি এমন হবে যে আপনি সময়ের সাথে হিমায়িত হয়ে পড়েছেন এবং আপনি যা করেন তা হারিয়ে গেছে, বা নিছক কোথাও যাচ্ছেন না। কেন? ভাল কারণ হেড কিছু ইশারা করছে না.

কিছু লোক ভাঙ্গার কোন উদ্বেগ ছাড়াই ভান্ডারের পূর্ববর্তী অবস্থা অন্বেষণ করতে এটি দরকারী বলে মনে করে।

হেড পুনরায় সংযুক্ত করা হচ্ছে

আপনাকে অবশ্যই বুঝতে হবে যে আপনার কোনও শাখা প্রভাবিত হবে না যদি আপনি কখনও বিচ্ছিন্ন অবস্থায় যান . এখন, HEAD পুনরায় সংযুক্ত করার সর্বোত্তম উপায় হল একটি নতুন শাখা তৈরি করা।

আমরা এটি git checkout -b <branch-name> এর মত সহজ করতে পারি .

আমরা যদি বুঝতে না পারি যে আমরা মাথা ছাড়া ছিলাম এবং পরিবর্তন করতে শুরু করি? ঠিক আছে, এখানে আমাদের একটি অস্থায়ী শাখা তৈরি করতে হবে এবং যে শাখাটি আমাদের প্রতিশ্রুতিবদ্ধ করতে হবে তার সাথে একত্রিত হতে হবে। যেমন:

git checkout -b temp-branchgit checkout mastergit temp-branch মার্জ

এটি আপনার অস্থায়ী শাখা থেকে আপনার প্রয়োজনীয় শাখায় পরিবর্তনগুলি কমিট করবে। এই ক্ষেত্রে মাস্টার।

উপসংহার

আজ আমরা শিখেছি কীভাবে আমাদের মাথা (আক্ষরিক অর্থে নয়) আলাদা করতে হয় এবং তারপরে কী করতে হবে। গিট অভ্যন্তরীণ কার্যাবলীতে HEAD কী তা বোঝা আমাদের বিশেষ ক্ষেত্রে যেমন একটি বিচ্ছিন্ন হেড বুঝতে সাহায্য করতে পারে।

আমরা যদি কখনও একটি বিচ্ছিন্ন হেড অবস্থায় শেষ হয়ে যাই তবে আমরা চিন্তা করতে শিখেছি। শুধু মনে রাখবেন যে যেহেতু আপনার মাথা আলগা, পরিবর্তন এবং প্রতিশ্রুতি কোথাও প্রতিফলিত হবে না। তাই নিশ্চিত করুন যে আপনি সেই অনুযায়ী হেড পুনরায় সংযুক্ত করেছেন।


  1. Git .git/FETCH_HEAD খুলতে পারে না:অনুমতি অস্বীকৃত সমাধান

  2. গিট বিচ্ছিন্ন হেড

  3. গিট রেসকিউতে রিসেট করুন

  4. HTML <head> ট্যাগ