গিট মারাত্মক: রেফারেন্সটির অবৈধ বিন্যাস রয়েছে: 'রেফ / মাথা / মাস্টার


101

আমি Dropboxএকটি gitসংগ্রহস্থল সিঙ্ক করতে ব্যবহার করছি , কিন্তু এখন যখন আমি চেষ্টা করি এবং pushআমি একটি ত্রুটি পাচ্ছি:

fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)'

সুতরাং, মনে হচ্ছে ড্রপবক্স একটি বিরোধ খুঁজে পেয়ে একটি অনুলিপি তৈরি করেছে। ঠিক আছে, কোনও সমস্যা নেই, তাই আমি দ্বন্দ্বযুক্ত ফাইলটি মুছলাম। তবুও উপরের গিট ত্রুটিটি পেয়েছি।

$ git checkout master
    M   index.html
    Already on 'master'
$ git add .
$ git commit -a -m "Cleanup repo"
    [master ff6f817] Cleanup repo
    1 file changed, 5 insertions(+), 5 deletions(-)
$ git push
    fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)'
    The remote end hung up unexpectedly`

আমি এটা কিভাবে ঠিক করবো? ধন্যবাদ।

উত্তর:


178

আপনি যদি এটি সম্পর্কে নিশ্চিত না হন তবে আপনার রেপোর একটি ব্যাকআপ তৈরি করুন, কারণ এই আদেশগুলি অপরিবর্তনীয়।

প্রথমে আপনার রেপো ডিরেক্টরিতে যান।

cd myrepo

তারপরে অবিচ্ছিন্নভাবে বিরোধযুক্ত ফাইলগুলি অনুসন্ধান করুন এবং সেগুলি মুছুন

find . -type f -name "* conflicted copy*" -exec rm -f {} \;

শেষ অবধি, গিটের প্যাকড-রেফস ফাইল থেকে যে কোনও "দ্বন্দ্বপূর্ণ" রেফারেন্স সরিয়ে ফেলুন

awk '!/conflicted/' .git/packed-refs > temp && mv temp .git/packed-refs

1
আমার একই সমস্যা ছিল এবং এটি আমার জন্য এটি স্থির করেছে। ধন্যবাদ!
এরিক

এটি আমার জন্য এটিও স্থির করে দিয়েছে। ধন্যবাদ!
সেকনোনুরলে

1
ম্যাকোস ব্যবহারকারীদের জন্যfind . -type f -name "* conflicted copy*" -delete
সায়ো

42

দ্বন্দ্বযুক্ত ফাইলটি একাধিক স্থানে থাকতে পারে, আমি তা দেখব:

.git/logs/refs/remotes/origin/
.git/logs/refs/heads/
.git/refs/remotes/origin/
.git/refs/heads/

অথবা আপনি .gitউপ - ডিরেক্টরিতে সর্বত্র দেখতে পাবেন :find . -name '*conflicted*'

বা অন্যথায়, সক্রিয় শাখাগুলির সাথে তালিকাবদ্ধ করুন git branch -aএবং git branch -dসন্দেহজনক যে কোনও কিছু মুছুন ।


এর ভিতরে সর্বত্র বিবাদযুক্ত ফাইল রয়েছে .git। আমি এর মধ্যে দিয়ে গিয়েছিলাম এবং সেগুলি মুছে ফেলেছি its ধন্যবাদ।
জাস্টিন

2
@ জাস্টিন গ্ল্যাড আমি সাহায্য করতে পারি। যদি এই উত্তর বা অন্য কোনও আপনার সমস্যার সমাধান করে, দয়া করে এটি স্বীকৃত হিসাবে চিহ্নিত করুন।
মার্কো লিওগ্র্যান্ডে

2
ম্যাক ওএস এক্সে ব্যবহার করুন: find . -name '*conflicted*'(সম্পাদনা করুন: ফর্ম্যাট)
xgMz

1
@ xgMz ধন্যবাদ, আমি আমার উত্তর আপডেট করব, কারণ আপনার সমাধানটির সাধারণ বৈধতা রয়েছে।
মার্কো লিওগ্র্যান্ডে

1
একটি সহজ সঙ্গে findআমি একটি একক বিবাদী ফাইল ধরেছিলাম এবং দুটি দিয়ে ম্যানুয়ালি সমস্যার সমাধান করেছি mv। ধীরে ধীরে এটি করা এবং ধাপে ধাপে যুক্তি করা নিরাপদতম রুট।
পিড

8

ড্রপবক্স আপডেট হওয়ার আগে আমার সহকর্মী তার পরিবর্তনগুলি ধাক্কা দিয়ে পিসিটি বন্ধ করে দেয় এবং এটি আমাদের দলের ক্ষেত্রেও ঘটে।

আমি এত সহজ সমাধান করেছি।

সবে দ্বন্দ্বযুক্ত অনুলিপি মুছে ফেলা হয়েছে। (এক্সএক্সএক্সএক্সের বিবাদযুক্ত অনুলিপি yyyy-mm-dd)

এবং এটি সাধারণভাবে টানুন।

নোট করুন যে আমার সহকর্মীর গণ্ডগোলের আগে পরিবর্তনগুলি ছিল। এবং তিনি তার পরিবর্তনগুলি আবার চাপুন। এবার কোনও শাটডাউন নেই। :)


1
আমার জন্য একেবারে নিখুঁতভাবে কাজ করেছে :) থেক্স - আমার জন্য ড্রপবক্স এমন কিছু অদ্ভুত স্ট্রিং ফাইল নাম তৈরি করেছে যা "আপডেট" এর সাথে সামঞ্জস্যপূর্ণ ছিল না
সিভি

1
এটি আমার পক্ষে কাজ করেছিল! "রেফার্স / হেডস ফোল্ডার" নামে নামটিতে "বিবাদযুক্ত অনুলিপি" সহ একটি ফাইল ছিল এবং সেটি মুছে ফেলা হয়েছে, তারপরে টানুন / চাপুন এবং সবকিছু ঠিক আছে। ধন্যবাদ!
ডিস্কদেভ

7

আমি আমার .git ফোল্ডার থেকে সমস্ত দ্বন্দ্বযুক্ত ফাইল মুছতে সক্ষম হয়েছি, কিন্তু আমি আর অস্তিত্ব নেই এমন ফাইল সম্পর্কে ত্রুটি পেতে থাকি।

আমার জন্য .git/refs/packed_refsফিক্সটি "বিবাদযুক্ত" পাঠ্যযুক্ত লাইনগুলি খোলার এবং মুছে ফেলার ছিল ।


1

আমার জন্য এটি ত্রুটি দিচ্ছিল: fatal: Reference has invalid format: 'refs/tags/r0.2:3'

আপনি /.git/packed_refs এ যেতে পারেন ফাইলটিতে গিয়ে লাইনটি মুছতেrefs/tags/r0.2:3

তারপরে এটি কাজ শুরু করে। তবে কেন এটি প্রথম স্থানে আমার জানা নেই।


0

git checkout masterস্বাস্থ্যকর, নামযুক্ত শাখায় যাওয়ার জন্য প্রথমে চেষ্টা করুন ।


মূল পোস্টে আপডেট আউটপুট।
জাস্টিন

এইচএম, আপনি একটি সম্পূর্ণ চেষ্টা করতে পারেন git push origin master, এবং git branch -aদয়া করে এর আউটপুট পেস্ট করতে পারেন ?
অকর্মা

এখানে একই ত্রুটি ... git branch -aএই খুব ত্রুটির ফলাফল চেষ্টা করে !
trusktr

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

0

আমি একই ত্রুটি পেয়েছিলাম

মারাত্মক: রেফারেন্সটির অবৈধ বিন্যাস রয়েছে: 'রেফ / মাথা / সামান্য কিছু (1)'

নিম্নলিখিত কমান্ডের জন্য

git branch

তারপরে, আমি কমান্ডটি ব্যবহার করে ভুল নাম (শাখার নাম (1) এর পরে) অনুসন্ধান করেছি

find . -name 'somebranch (1)'

এবং এটি নিম্নলিখিত ফলাফল দেখিয়েছে

./.git/refs/ Heads/somebranch (1)

যা কিছু ব্র্যাঙ্ক আইএমওর নকল সংস্করণ । সুতরাং, আমি মুছে ফেলা কমান্ড নিম্নলিখিতটি কার্যকর করে এটি সরিয়েছি

find . -name 'somebranch (1)' -print -exec rm -rf {} \;

তারপরে শাখা কমান্ডটি সফলভাবে চালিত হবে

git branch

0

আমি যেমন অনুরূপ ত্রুটি সম্মুখীন

fatal: Reference has invalid format: 'refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08)'

.git/refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08)রিমোট ড্রপবক্স সংগ্রহস্থলে কেবল ফাইল মুছে ফেলা সমস্যার সমাধান করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.