গিট টানে গিট ত্রুটি (স্থানীয় রেফার আপডেট করতে অক্ষম)


126

আমার কাছে কেবল শাখা মাস্টার রয়েছে এবং আমি যখনই "গিট টান" চেষ্টা করি তখন আমি এই ত্রুটিটি পেয়ে যাচ্ছি:

error: Couldn't set refs/remotes/origin/master
From /var/lib/git/xxx/project
 ! a0f80ea..49177a3  master     -> origin/master  (unable to update local ref)

এবং যখন আমি "গিট টান উত্সাহী মাস্টার" করি তখন আমি পাই:

error: Couldn't set ORIG_HEAD
fatal: Cannot update the ref 'ORIG_HEAD'.

আমি সন্ধান করছি কিন্তু কেন খুঁজে পাচ্ছি না


4
স্থানীয় ভাণ্ডার কোথায়? আপনি কি টানটি কার্যকর করতে ব্যবহার করছেন তার চেয়ে আলাদা ব্যবহারকারী হিসাবে এটি তৈরি করেছেন? এটি কোনও ফাইল অনুমতি সমস্যার মতো শোনাচ্ছে।
tpg2114

হ্যাঁ আপনি ঠিক বলেছেন আপনি এই প্রকল্পের ফাইলগুলির মালিক অন্য একজন ব্যবহারকারী বলেছিলেন, এখন আমার প্রশ্নটি এত বোকা বলে মনে হচ্ছে তবে আপনি আমাকে উত্তরটি দিয়েছেন, দয়া করে এটি সেরা হিসাবে চয়ন করার জন্য একটি উত্তর তৈরি করুন;)
ব্যবহারকারী 115561

দয়া করে @ tpg2114 এটি চয়ন করার উত্তর হিসাবে যুক্ত করুন
ব্যবহারকারী 115561

উত্তর:


286

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

আমরা ব্যবহার করেছি :

git gc --prune=now

এটি কোনও সদৃশ রেফারেন্স অবজেক্টগুলি সরিয়ে দেয় যা সমস্যার সমাধান করতে পারে।

এখানে কয়েকটি লিঙ্ক রয়েছে যেখানে আপনি গিট রেফারেন্স এবং ছাঁটাই সম্পর্কে আরও শিখতে পারেন :

সপ্তাহে গিট টিপ

গিট-প্রুন ডকুমেন্টেশন

গিট রেফারেন্স


4
আমার জন্যও একই কাজ করেছেন, একই বার্তা, উইন্ডোজ 7
জেমস ওয়েস্টগেট

4
সবেমাত্র এই সমস্যা থাকা শুরু। একটি গুচ্ছ ধন্যবাদ! পুরোপুরি কাজ!
ddrossi93

4
এই দুটি আদেশের প্রয়োজন হতে পারে: স্ট্যাকওভারফ্লো.comgit gc --prune=now git remote prune origin
জিজ্ঞাসা

4
আমি চেষ্টা করেছি git remote prune originএবং এটি আমার পক্ষে কার্যকর হয়নি। কিন্তু তার পরে এটি চেষ্টা করে git gc --prune=now, এবং এটি কাজ করে! নিশ্চিত না, যদি উভয় ক্রমটি প্রয়োজন হয়, বা শুধুমাত্র এই এক।
অনুরাগ

4
তবুও এর সাথে আরও একটি ক্রিপ্টিক ইস্যু gitএকটি ক্ষত সমাধান সহ একটি সহায়ক স্ট্যাকওভারফ্লো পোস্টে নিয়ে যায়।
ইজোসেফ

144

আমি নীচের মত সমাধান করেছি:

git remote prune origin


6
ইউরেকা! এটা আসলে কাজ করে। এটির নামকরণ করা শাখা প্রত্যন্ত বা কোনও কিছুর সাথে সম্পর্কিত। আমি এটি চেষ্টা করে বোঝাতে যাচ্ছি না।
TheSoftwareJedi

8
এটি আমার জন্য এটি করেছিল, git gc --prune=nowকিছুই করেনি
জোশ জি

4
একই এটা আমার জন্য কাজ করে। git gc --prune = এখন আমার পক্ষে কাজ করেনি।
টনি

এই সমাধানটি 'ত্রুটিটি সমাধান করতে আশ্চর্যরূপে কাজ করেছিল: লোকরেফ আপডেট করতে অক্ষম রেফটিকে লক করতে পারে না'
কোডার কেম্প

22

গিটবাচ লাইন কমান্ডের git update-refসাহায্যে আপনার স্থানীয় শাখার রেফারেন্স আপডেট করতে ব্যবহার করুন :

$ git update-ref -d refs/remotes/origin/[locked branch name]

তারপরে টানুন $ git pull

[locked branch name] ব্রাঙ্কটির নাম যা কমিট আইডির মিল না পেয়ে ত্রুটি ঘটছে।


15

আপনার গিট সংগ্রহস্থল মূল ফোল্ডারে এই কমান্ডটি ব্যবহার করার চেষ্টা করুন:

rm .git/logs/refs/remotes/origin/master 

উইন্ডোজের এই ফোল্ডারটি কোথায়?
কলব ক্যানিয়ন

আমি এটি খুঁজে পেয়েছি। এটি আপনি যে ডিরেক্টরিতে ক্লোন করেছেন তা
হ'ল


12

আমি আমার লোকাল অনুলিপিতে একটি বিটবাক রেপো থেকে টানতে চেষ্টা করে একই ত্রুটি বার্তাটি আবিষ্কার করেছি। এখানে কেবলমাত্র একটি ব্রাঞ্চ মাস্টার রয়েছে এবং git pull origin masterএই ত্রুটি বার্তায় কমান্ডটি নেতৃত্ব দেয়

From https://bitbucket.org/xxx
 * branch            master     -> FETCH_HEAD
error: Couldn't set ORIG_HEAD
fatal: Cannot update the ref 'ORIG_HEAD'.

নিম্নলিখিত সমাধান

  1. git reflog শেষ প্রতিশ্রুতিবদ্ধতার সংখ্যাটি সন্ধান করুন
  2. git reset --hard <numnber> শেষ প্রতিশ্রুতি পুনরায় সেট করুন
  3. git pull origin master ত্রুটি ছাড়াই আবার টানুন

8

যে ব্যবহারকারী ব্যবহার করছেন তা নিশ্চিত করুন যে git pullএকই ব্যবহারকারী সংগ্রহশালা তৈরি করেছেন। ফাইলের অনুমতিগুলি ভুল।


আমার জন্য আমাকে রেপোতে থাকা ফাইলগুলির মালিককে বদলাতে হয়েছিল আমি ডুব দিয়ে সঠিক ব্যবহারকারীর কাছে টানতে চাইছিলাম। আমি মনে করি এটি মূলত আপনি যা বলছিলেন তা হ'ল যদিও এটি পড়ার পরে তা আমার কাছে স্পষ্ট ছিল না।
ডি

আমি এটির সাথে একমত হয়েছি কিনা তা পরীক্ষা করে দেখুন যে মালিক এবং গোষ্ঠী ".git" রেপো টানতে ইচ্ছুক ব্যবহারকারীকে সেট করেছে (যদি আপনি কোনও শাখা "রুট" বলে টানেন তবে ঘটে) আমার ক্ষেত্রে "সুডো ক্লাউন -আর" কাজটি করেছে।
jo_


2

ওএসএক্সে আমার সাথে এটি ঘটেছিল যেখানে আমি একটি কেস সংবেদনশীল ফাইল সিস্টেম ব্যবহার করি। অন্য কোনও বিকাশকারী একই নামে একটি শাখা ঠেলাঠেলি করেছে তবে ভিন্ন ক্ষেত্রে: My-Branchবনাম my-branch

আমি ইতিমধ্যে My-Branchচেক আউট করেছি এবং ত্রুটিটি পেয়েছি "স্থানীয় রেফ আপডেট করতে অক্ষম" যখন আমি একটি টানছিলাম সম্ভবত ফাইল সিস্টেমটি My-Branch== বলে my-branch

যেহেতু আমরা গিতুব ব্যবহার করি আমি গিথুবের জিইউআইয়ের মাধ্যমে একটি শাখা মুছে ফেলে সমস্যার সমাধান করতে পারি।


আমার ক্ষেত্রে, উভয় বিরোধী শাখা অন্য ব্যবহারকারীর অন্তর্গত তাই আমি একটি মুছতে পারিনি। পরিবর্তে, আমি .git \ refs \ রিমোটসের অধীনে ব্রাঞ্চ রেফ ফাইলটি মুছে ফেলেছি এবং এটি এটি স্থির করে (অস্থায়ীভাবে - যখনই আমি অন্য ব্যবহারকারী তার শাখাগুলির একটি মুছবেন ততক্ষণ সমস্যাটি ফিরে আসবে)।
জন ম্যান্ডিক

আমার সমস্যাটি স্থানীয় শাখা এবং দূরবর্তী পৃথক মূলধনের কারণেও ছিল। স্থানীয় শাখাটি মুছে ফেলা, উপরের প্রুন কমান্ডটি ব্যবহার করে, এবং তারপরে উত্স থেকে অনুসন্ধান করা এটি সমাধান করেছে
বর্ণনাটি

2

এটি সম্ভবত খুব কুলুঙ্গিত পরিস্থিতি, তবে: আমি আমার ম্যাকবুক প্রোতে একটি সমান্তরাল ভিএম-তে উইন্ডোজ চালিত করি, আমার স্থানীয় রেপোগুলি ভিএম-এর ডিস্কে সঞ্চিত, যা ম্যাকোএসের সাথে ভাগ করা হয়।

আমার যদি উইন্ডোজ ভিএম-এ অবস্থিত রেপো থেকে কোনও ম্যাক অ্যাপে ফাইল খোলা থাকে তবে আমি মাঝে মাঝে "স্থানীয় রেফ আপডেট করতে অক্ষম" ত্রুটি পাই। এটি হওয়ার পরে সমাধানটি হ'ল ফাইলটি বন্ধ করা বা ম্যাক অ্যাপ্লিকেশনটি বন্ধ করা।


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

2

এখানে কি ঘটেছে? আপনার দূরবর্তী শাখাগুলির স্থানীয় রেফারেন্সগুলি পরিবর্তন করা হয়েছিল এবং তাই আপনি যখন চালনা করেন তখন git pullগিটটি কোনও সম্পর্কিত দূরবর্তী শাখা খুঁজে পায় না এবং এটি ব্যর্থ হয়।

git remote prune origin

প্রকৃতপক্ষে এই স্থানীয় রেফারেন্সগুলি পরিষ্কার করে এবং আবার চালনা git pullকরে।

পরামর্শ - --dry-runসুরক্ষার জন্য দয়া করে বিকল্পটি চালান


1

আপনি যদি সম্প্রতি পাসওয়ার্ড পরিবর্তন করে থাকেন এবং আপনার উইন্ডোজ এবং লিনাক্স লগইনগুলিকে একীভূত করার মতো কিছু অভিনব জিনিস রয়েছে তবে এটি (স্থানীয় রেফ আপডেট করতে অক্ষম) এর সাথে এই ত্রুটিটিও ঘটতে পারে।


1

পিসি ব্যবহারকারী থেকে কথা বলা - রিবুট করুন।

সত্যিই, এটি আমার পক্ষে কাজ করেছিল। আমি দু'টি অদ্ভুত সমস্যা সমাধান করেছি যা আমি ভেবেছিলাম যে এইভাবে দুর্নীতি হয়েছে।


1

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

তারপরে আমি "git gc --prune = now" সমাধানটি চেষ্টা করেছি এটি বার্তা দিয়েছে যে ফাইলগুলি রেফ ডিরেক্টরিতে লক করা আছে।

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


1

আমার জন্য যা কাজ করেছিল তা হ'ল:

git config --global fetch.prune true

এখন এটি স্বয়ংক্রিয়ভাবে ছাঁটাই চালিয়ে যায়।


0

ডিস্ক পূর্ণ হওয়ায় আমার ডেবিয়ান সার্ভারেও একই সমস্যা ছিল। ডিভাইসে স্থান না রেখে কোনও টেম্প ফাইল তৈরি করা যায়নি। কিছু ফাইল পরিষ্কার করার পরে, এটি ঠিক কাজ করে।


0

আমার জন্য এই কাজ

rm .git/logs/refs/remotes/origin/master 

আমি সন্দেহ করি যে এটি সাহায্য করে - বা এমনকি কাজ করে। আমার সাথে কথা বলতে অন্যথায় দয়া করে এটি কীভাবে কাজ করা উচিত এবং কেন সমস্যাটির সাথে সহায়তা করার কথা মনে করা হচ্ছে তার একটি ব্যাখ্যা যুক্ত করুন। আপাতদৃষ্টিতে অনুরূপ বিদ্যমান অন্যান্য উত্তরগুলির পার্থক্যগুলি হাইলাইট করা একটি বোনাস হবে। বিশেষত বাবাক দ্বারা উত্থিত এক।
ইউনোশচ

0

ফাইল .git / লগস / রেফস / রিমোটস / উত্স / [লক করা শাখার নাম] সরান


4
আমি সন্দেহ করি যে এটি সাহায্য করে - বা এমনকি কাজ করে। আমার সাথে কথা বলতে অন্যথায় দয়া করে এটি কীভাবে কাজ করা উচিত এবং কেন সমস্যাটির সাথে সহায়তা করার কথা মনে করা হচ্ছে তার একটি ব্যাখ্যা যুক্ত করুন। আপাতদৃষ্টিতে অনুরূপ বিদ্যমান অন্যান্য উত্তরগুলির পার্থক্যগুলি হাইলাইট করা একটি বোনাস হবে। বিশেষত বাবাক দ্বারা উত্থিত এক।
ইউনোশচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.