উত্তর:
আমি এর প্রভাব বুঝতে পারি না, তবে এই থ্রেডে যেমন পরামর্শ দেওয়া হয়েছিল , যখন আমি এটির মুখোমুখি হয়েছিলাম তখনই করেছি
$ mv .git/refs/remotes/origin/HEAD /tmp
(কেবলমাত্র ক্ষেত্রে এটি রাখা) এবং তারপরে
$ git gc
অভিযোগ না করেই কাজ করেছেন; আমি কোন সমস্যায় পড়ি না।
git prune
আমার জন্য কাজ করেছে, এমন একটি উপাত্ত মুছে ফেলার উপায় যা গিটে জমা হয়েছে তবে দরকারী কোনও বিষয় দ্বারা এটি রেফারেন্স করা হচ্ছে না।
$ mv .git/refs/remotes/origin/HEAD /tmp
$ git gc
git prune
git gc
আমার জন্য কাজ
আমি যে সমস্যার মধ্যে দৌড়েছি (এটি একই সমস্যা যা @ স্টাভারেঙ্গো উপরে উপরে এই মন্তব্যে উল্লেখ করেছেন ) হ'ল ডিফল্ট দূরবর্তী শাখাটি ( develop
আমার ক্ষেত্রে) মুছে ফেলা হয়েছিল, তবে এখনও এটি উল্লেখ করা হয়েছে .git/refs/remotes/origin/HEAD
।
.git/refs/remotes/origin/HEAD
আমার সম্পাদক খোলার মাধ্যমে এটি প্রদর্শিত হয়েছিল:
ref: refs/remotes/origin/develop
আমি এটি আমার নতুন ডিফল্ট শাখায় সতর্কতার সাথে সম্পাদনা করেছি এবং সবকিছু ঠিকঠাক ছিল:
ref: refs/remotes/origin/master
যে ক্লু আমাকে শিখিয়েছিল তা হ'ল দৌড় git prune
এই ত্রুটিটি দেখিয়েছিল:
> git prune
warning: symbolic ref is dangling: refs/remotes/origin/HEAD
ট্রেনটনের উত্তর দেখার পরে আমি আমার দিকে তাকিয়ে .git/refs/remotes/origin/HEAD
দেখলাম যে এটি একটি পুরানো শাখার দিকেও ইঙ্গিত করছে যা এখন মুছে ফেলা হয়েছে।
তবে ফাইলটি নিজে সম্পাদনা করার পরিবর্তে আমি রায়ের সমাধানটি চেষ্টা করেছি:
git remote set-head origin --auto
এটি স্বয়ংক্রিয়ভাবে ফাইলটিকে নতুন শাখায় সেট করেছে এবং এর git gc
পরে দুর্দান্ত কাজ করেছে।
git remote set-head $REMOTE --auto
আমার ক্ষেত্রে, EM REMOTE হ'ল রিমোট ওরফে, ডিফল্ট "উত্স" নয়, কারণ আমার একাধিক রিমোট সেটআপ রয়েছে।
আমি ভেবেছিলাম যে সমাধানটি নিম্নলিখিত হিসাবে কাজ করেছে বলে মনে হচ্ছে, তবে এটি আসলে সমস্যার সমাধান না করে দেখা যাচ্ছে।
git remote set-head origin --auto
git prune
(যেমন প্রথম কমান্ড আউটপুট হিসাবে প্রস্তাবিত হয়েছিল), তাই আমাকে ঠিক কী সাহায্য করেছে - প্রথম, দ্বিতীয়, বা উভয়ই তা বলতে পারছি না।
git remote set-head origin --auto
আমাকে ব্যবহার না করেই আমার রেফস / রিমোটস / উত্স / হেড ফাইলটি স্থির করে git prune
error: Multiple remote HEAD branches. Please choose one explicitly
এবং ত্রুটিটি সরে যাওয়ার জন্য git remote set-head origin mybranch
('মাইব্র্যাঞ্চ' শাখাটি চেকআউট করার সময়) ব্যবহার করতে হয়েছিল।
দেখে মনে হচ্ছে আপনার প্রতীকী রেফগুলি ভেঙে যেতে পারে ... এটির পরিবর্তে এটির পরিবর্তে আপনার ডিফল্ট শাখার চেষ্টা করুন: উদাহরণস্বরূপ, আমার ডিফল্ট শাখাটি মাস্টার
$ git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master
$ git fetch --prune
$ git gc
এটি ঠিক করা উচিত।
আমার জন্য এর কারণটি উইন্ডোজের একটি সংকুচিত ফোল্ডারে কাজ করছিল। যখন ফোল্ডারটি সঙ্কুচিত ছিল, তখন এটি প্যাক ফাইলগুলিকে দূষিত করেছিল, অজানা শাখাগুলি ছাঁটাই করতে না পারার মতো অন্যান্য বিজোড় সমস্যাগুলিকে ক্যাসকেড করছে।
একমাত্র ফিক্সটি ছিল ওয়ার্কিং ডিরেক্টরি মুছতে এবং পুনরায় রিমোট (গুলি) ক্লোন করে। ভাগ্যক্রমে, কিছুই হারিয়ে গেছে তা নিশ্চিত করতে আমি এখনও ধাক্কা দিয়ে আপডেটগুলি টানতে পারি। এখন সব ঠিক আছে।
master
অন্য একটিতে পরিবর্তন করেছিdevelop
। আগের দিন আমি থেকে ফিরে এটি পরিবর্তনdevelop
করতেmaster
এবং আমি বৃদ্ধ ডিফল্ট শাখা মোছাdevelop
, কিন্তু আমার কাজ ডিরেক্টরির মধ্যে, ফাইল.git/refs/remotes/origin/HEAD
এখনও প্রতি নির্দেশ ছিলrefs/remotes/origin/develop
আর বিদ্যমান নেই পারে। এই পরিস্থিতিতে ফাইল অপসারণ কাজ করে।