গিট টান ত্রুটি: ত্রুটি: রিমোট রেফ রয়েছে তবে প্রত্যাশিত


227

সম্পূর্ণ বার্তা:

error: Ref refs/remotes/origin/user is at 3636498c2ea7735fdcedc9af5ab3c8689e6abe77 but expected a21359c6cc2097c85775cde6a40105f4bd7100ec
From github.com:{github project url}
 ! a21359c..6273ffc  user -> origin/user  (unable to update local ref)

3
স্পষ্টতই কেউ পুনরায় সংগ্রহস্থলের ইতিহাস পুনর্লিখন করেছেন git push --force। চালানোর চেষ্টা করুন git pull --force
xaizek

1
গিট পুশ
ফোর্সে

উত্তর:


225

যদি আপনি কোনও ফাইল সিস্টেমের অধীনে গিটটি চালাচ্ছেন যা কেস সংবেদনশীল নয় (উইন্ডোজ বা ওএস এক্স) একই নামের দুটি শাখা থাকলেও পৃথক মূলধন যেমন, user_model_changesএবং User_model_changesদূরবর্তী শাখাগুলির সাথে একই ট্র্যাকিংয়ের সাথে মিলে যাবে ।

ভুল দূরবর্তী শাখা মুছুন (আপনার শাখাগুলি কেবলমাত্র কেস দ্বারা পৃথক হওয়া উচিত নয়) এবং তারপরে git remote prune originএবং সমস্ত কিছু কাজ করা উচিত


উত্তরের জন্য ধন্যবাদ. এটি এই ত্রুটিটি নিয়ে সমস্যা ছিল না। আমি ইতিমধ্যে এই সমস্যার সমাধান খুঁজে পেয়েছি এবং প্রশ্নের নীচে মন্তব্য পোস্ট করেছি।
সঞ্জীব কুমার ডাঙ্গি

2
ম্যাক ওএস এক্সের জন্যও সহায়তা করে (ডিফল্ট ফাইল সিস্টেমটি সংবেদনশীল নয়)।
ট্যাম্মো ফ্রিজ

12
হ্যাঁ, উইন্ডোজে কেস-সংবেদনশীল সমস্যা সমস্যার কারণ হয়ে দাঁড়িয়েছে। আমি ম্যানুয়ালি এটি .git\refs\remotes\originফোল্ডারে রেফটি সরিয়ে git pullআবার ঠিক করেছি।
রায় লিং

এবং যারা জানেন না তাদের জন্য .git ফোল্ডারটি কোথায় থাকবে .. এটি আপনার প্রকল্প / ওয়ার্কস্পেস ফোল্ডারের ভিতরে তৈরি করা হবে: ডি
কুমার

1
এটি গিট বাগ (কমপক্ষে ত্রুটির বার্তাটি ভুল)। আমি আশা করি কেউ গিট প্রকল্পে এই বাগটি রিপোর্ট করতে পারে। গিট প্রকল্পে বাগ রিপোর্ট করা আমার পক্ষে কঠিন মনে হচ্ছে। github.com/git/git
ব্রোঞ্জের লোক

190

স্থায়ী স্থির

git update-ref -d এই ত্রুটির উদাহরণটি সমাধান করুন

git update-ref -d refs/remotes/origin/user

মনে রাখবেন যে এটি দূরবর্তীকে প্রভাবিত করে না।

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

যদি এটি কাজ না করে তবে একটি অস্থায়ী সমাধান:

আরও মনে রাখবেন যে আপনি যদি প্রশ্নে থাকা শাখাটি সম্পর্কে চিন্তা না করেন (যেমন আপনি কেবল মাস্টার আপডেট করতে চান, উত্স / ব্যবহারকারী নয়) তবে একটি git pullকর্মসূচী আনতে হবে তবে কেবল আপনার বিশেষ শাখাটি মার্জ করা হবে, উদাহরণস্বরূপ

git fetch # may give an error for a particular branch, but other branches will still be successfully fetched
git merge origin/master

এটি গ্রহণযোগ্য সমাধান হওয়া উচিত কারণ এটি দূরবর্তী স্পর্শ না করেই সমস্যার সমাধান করে।
কর্নো

52

এর অধীনে কেবল ফোল্ডার এবং ফাইলগুলি মুছুন \.git\refs\remotes\origin। কাজ করে, যখন আপনার চাপ ছাড়ানো পরিবর্তন নেই।


আপনার রিমোট রেফ যদি 'প্যাকড' থাকে এবং তাই এটি রেফ / রিমোট / ** এ না পারে তবে এটি কাজ করতে পারে না @ জেডিম্যাটটিও এর সমাধানটি এখনও কাজ করা উচিত
আলেকজান্ডার বার্ড

2
আমার জন্য কাজ করেছেন। অসংখ্য ধন্যবাদ!
স্বপ্নিল পাটওয়া

মোহন মত কাজ! ধন্যবাদ!
অনুরাগ এস শর্মা

43

সমস্যাটি সমাধান করার জন্য আমি এটি চালিয়েছি:

git gc --prune=now

2
এটি আমার জন্য সমস্যাটি স্থির করেছে।
আমির রিজওয়ান

2
আমার জন্যও ..-- :)
অরবিন্দ আর

3
ধন্যবাদ, এই সমাধানটি আমার জন্য ঠিক করুন। আপনি যে সমাধানটি সরবরাহ করেছেন সে সম্পর্কে আপনি কি আরও কিছু ব্যাখ্যা করতে পারেন?
আমল

1
মূলত এটি কেবল একটি গিট আবর্জনা সংগ্রহকারী সরঞ্জাম তাই এটি এমন কোনও কিছু মুছে যা সিঙ্ক হয় না তবে স্থানীয় কম্পিউটারে
ক্যাচিংয়ের

42

একে একে নীচের দুটি কমান্ড ব্যবহার করুন।

git gc --prune=now

git remote prune origin

এটি আপনার সমস্যার সমাধান করবে।


1
এটি আমার পক্ষে কাজ করে তবে আমি যখন অন্য গিট টান তখন এই বিষয়টি আবার উঠে আসে
জোজিন

@ জোজিন আপনার মতোই এবং অবশেষে আমি প্রকাশ সরওয়ানন যেভাবে সরবরাহ করেছেন তা বেছে
নিয়েছি

1
গিট ফাইলগুলি সম্পাদনা করার পরামর্শের চেয়ে এটিকে উচ্চতর রেট দেওয়া উচিত :)
মাইক ওয়াইস

শুধুমাত্র এই সমাধানটি আমার পক্ষে কাজ করেছিল। ধন্যবাদ!
ইনসনেইসয়ে

12

আমাকে আমার কমান্ড লাইন থেকে আমার শাখাটি এখানে সরিয়ে ফেলতে হবে:

.git\refs\remotes\{my remote}\{**my branch**}

এবং তারপর ম্যানুয়ালি করছেন:

git pull [remote_name] [branch_name]

আমি পরিবর্তনগুলি টানতে সক্ষম হয়েছি।

দ্রষ্টব্য: আমি সোর্স ট্রি ব্যবহার করছিলাম এবং টানটি করতে অক্ষম।


শেষ পর্যন্ত আমি আমার রিমোটগুলি নামকরণ করেছি: আমার সোর্সট্রি ইতিহাসে আমার দুটি রিমোট "বিটবকেট / স্টেজিং" এবং "বিটবকেট / স্টেজিং" ছিল তবে কমান্ড লাইনে কেবল "বিটবকেট" উপস্থিত হয়েছিল: গিট রিমোট -v। তাই আমি বিটবাকেটটির নাম পরিবর্তন করে বিটবাকেটে রেখেছি এবং সংঘাতটি অবশেষে অদৃশ্য হয়ে গেছে, আশা করি এটি সম্ভবত সম্ভাব্য সোর্স ট্রি ব্যবহারকারীদের সহায়তা করবে।
jogam5

আমার জন্য শাখাটি .git\packed-refsঠিক করার আগে আমাকেও তা সরিয়ে ফেলতে হয়েছিল।
মাইকেল

6

একটি হার্ড রিসেটও সমস্যার সমাধান করবে

git reset --hard origin/master

আপনি কি সেরা উত্তর নির্বাচন করেছেন?
mruanova

5

পরিষ্কার পদক্ষেপ

  1. টার্মিনাল মধ্যে

    cd /.git/refs/remotes/origin
    
  2. কর ls, আপনি কিছু শাখা এবং হেড দেখতে পাবেন

  3. আপনার মনে হয় যে শাখাটিতে সমস্যা রয়েছে বলে মনে করেন সেগুলি সরান

    rm branchname
    
  4. যদি এটি কাজ না করে তবে সমস্ত শাখা / হেড মুছুন

    • আপনি টান wana পারে

আশা করি এটি এখন কাজ করে।


এটি কি মূলত একই git update-ref -d <branchname>?
jt000


2

দুর্ভাগ্যক্রমে জিআইটি কমান্ডগুলি ছাঁটাই এবং পুনরায় সেট করা বা ধাক্কা আমার পক্ষে কার্যকর হয়নি। ছাঁটাই একবার কাজ করেছে এবং তারপরে সমস্যাটি ফিরে এসেছে।

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

আপনার মতো বার্তা থাকলে:

"ত্রুটি: রেফ 'রিফ / রিমোটস / উত্স / বৈশিষ্ট্য / শাখা_এক্সএক্সএক্স'কে লক করতে পারে না: 425ea23facf96f51f412441f41ad488fc098cf23 এ থাকলেও 383de86fed394ff1a1aefc4a522d886adcecd79 প্রত্যাশিত"

তারপরে ফাইলটিতে 'রেফস / রিমোটস / উত্স / বৈশিষ্ট্য / শাখা_এক্সএক্সএক্স'এর সারিটি সন্ধান করুন। সেখানে গাইডগুলি প্রত্যাশিত (২ য়) এক হবে - 383de86fed394ff1a1aeefc4a522d886adcecd79। আপনাকে এটিকে আসল (1 ম) এক - 425ea23facf96f51f412441f41ad488fc098cf23 এ পরিবর্তন করতে হবে।

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

যাইহোক সমস্যাটি কোনও শো স্টপার নয়। শাখার তালিকাটি আপডেট হয়ে যায়। এটি বরং একটি সতর্কতা।


1

প্রতিটি গানের জন্য গিট - ফর্ম্যাট = '% (পুনঃনামকরণ)' মুছে ফেলুন / মূল | গিট আপডেট-রেফ - স্টিডিন গিট রিফ্লগের মেয়াদ - এক্সপায়ার = এখন - সমস্ত গিট জিসি --প্রুন = এখন


0

এখানে একই ঘটনা, তবে মন্তব্যগুলির কিছুই আমার ক্ষেত্রে ঠিক ঠিক পোস্ট করা হয়নি, আমার কেবল একটি শাখা (মাস্টার) আছে এবং কেবল ইউনিক্স ফাইল সিস্টেম ব্যবহার করি, এই ত্রুটিটি এলোমেলোভাবে ঘটে যখন আমি গিট আনতে চলেছি - প্রগ্রেস - প্রোপুন উত্স এবং শাখা এগিয়ে রয়েছে বা 'উত্স / মাস্টার'। কেউ প্রতিশ্রুতি দিতে পারে না, কেবল 1 জন ব্যবহারকারী ধাক্কা দিতে পারে।

দ্রষ্টব্য: আমার একমে রিপোজিটরিতে একটি সাবমডিউল রয়েছে এবং অ্যাকমে নতুন সাবমডিউল পরিবর্তন রয়েছে (নতুন কমিট), আমার প্রথমে গিট সাবমডিউল আপডেট সহ একটি সাবমডিউল আপডেট করা দরকার।

[2014-07-29 13:58:37] Payload POST received from Bitbucket
[2014-07-29 13:58:37] Exec: cd /var/www/html/acme
---------------------
[2014-07-29 13:58:37] Updating Git code for all branches
[2014-07-29 13:58:37] Exec: /usr/bin/git checkout --force master
[2014-07-29 13:58:37] Your branch is ahead of 'origin/master' by 1 commit.
[2014-07-29 13:58:37]   (use "git push" to publish your local commits)
[2014-07-29 13:58:37] Command returned some errors:
[2014-07-29 13:58:37] Already on 'master'
---------------------
[2014-07-29 13:58:37] Exec: /usr/bin/git fetch --progress --prune origin
[2014-07-29 13:58:39] Command returned some errors:
[2014-07-29 13:58:39] error: Ref refs/remotes/origin/master is at 8213a9906828322a3428f921381bd87f42ec7e2f but expected c8f9c00551dcd0b9386cd9123607843179981c91
[2014-07-29 13:58:39] From bitbucket.org:acme/acme
[2014-07-29 13:58:39]  ! c8f9c00..8213a99  master     -> origin/master  (unable to update local ref)
---------------------
[2014-07-29 13:58:39] Unable to fetch Git data

এই সমস্যাটি সমাধান করার জন্য (আমার ক্ষেত্রে) প্রথমে গিট পুশ চালান যদি আপনার শাখাটি উত্সের চেয়ে এগিয়ে থাকে run


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

0

আমি জানি এটি পুরানো, তবে আমার নিজস্ব ফিক্স আছে। যেহেতু আমি উত্স ট্রি ব্যবহার করছি, এই ত্রুটিটি ঘটে কারণ কেউ একটি নতুন শাখা তৈরি করে। উত্স গাছটি এ সম্পর্কে বিভ্রান্ত। "কম্বোবক্স" টানতে দূরবর্তী শাখার পাশে আমি "রিফ্রেশ" বোতাম টিপানোর পরে, মনে হয় সোর্সট্রি শাখার তালিকা আপডেট করেছে এবং এখন আমি সফলভাবে টানতে পারি।


0

আমার একই সমস্যা হয়েছিল যা আমি ইতিমধ্যে দূরবর্তী শাখায় ধাক্কা দিলেও আমি পুরানো প্রতিশ্রুতিতে পুনরায় সেট করেছি।

আমি আমার স্থানীয় শাখাটি মুছে ফেলার পরে এটির উত্স শাখাটি পরীক্ষা করে git checkout origin/my_branchএবং পরে সম্পাদন করে সমাধান করেছিgit checkout my_branch


-1

অবিচ্ছিন্ন অনুসন্ধানের পরে, এটি আমার জন্য কাজ করা সমাধানটি আপসেটস / সেট আপসেট / অপসারণের অন্তর্ভুক্ত

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