একাধিক পর্যায়ের এন্ট্রিগুলির জন্য গিটের মধ্যে মারাত্মক ত্রুটি পাওয়া


241

ওএস এক্সে একতা গেম ইঞ্জিন সহ গিট সংস্করণ ২.২.০ ব্যবহার করে এবং আমার কোডটি প্রতিশ্রুতিবদ্ধ করতে চেয়েছিল। আমি সমস্ত কিছু যুক্ত করেছি এবং ত্রুটির বার্তাটি পাইনি। তারপরে কমিট করুন এবং এই ত্রুটি বার্তাটি পেয়েছেন:

fatal: multiple stage entries for merged file 'Assets/Prefabs/Resources'

এটি লক্ষ্য করে আমি ধাক্কা দিয়েছি, এটি একটি ত্রুটি বার্তা দেয় নি, আসলে বলেছিল Everything up-to-date তাই আমি বিটবাকেটটি পরীক্ষা করেছি (যেখানে রেপো রাখা আছে) এবং এটি আমার প্রতিশ্রুতি প্রদর্শন করে নি। সুতরাং আমি আমার স্থানীয় লগ পরীক্ষা করেছি এবং এটি আমার প্রতিশ্রুতি প্রদর্শন করে না।

আমি একটি উত্তর ... এবং কিছুই জন্য গুগল সন্ধান করেছি। এই ত্রুটিটি কি? এবং আমি কীভাবে এটি ঠিক করতে পারি?


আপনি গিটের কোন সংস্করণ বা সরঞ্জাম ব্যবহার করছেন? একাধিক পর্যায়ের এন্ট্রিগুলির জন্য চেকিংয়ের উন্নতি সম্পর্কে বিকাশকারীদের তালিকায় একটি সাম্প্রতিক থ্রেড রয়েছে। news.gmane.org/gmane.comp.version-control.git
ফিলিপ ওকলি

মনে হচ্ছে যে 2.2.0 এ অতিরিক্ত চেকিং জড়িত থাকতে পারে। "নিশ্চিত করুন যে নিমজ্জিত এন্ট্রিগুলি সরানো হয়েছে" 12 ই আগস্ট জাইম সোরিয়ানো যাজক লিখেছেন, এটি শুরু করার জন্য একটি থ্রেড হতে পারে।
ফিলিপ ওকলে

4
সুতরাং কেন এই ঘটবে?
চার্লি পার্কার

কেবলমাত্র উল্লিখিত ফাইলটিতে একটি ডামি সম্পাদনা করুন এবং 'কমিট এবং সিঙ্ক করুন'।
সাজানামাহা

নোট: দেখুন stackoverflow.com/a/51919644/6309
VonC

উত্তর:


381

প্রথম কার্যসংক্রান্ত, যা গীত সাম্প্রতিক সংস্করণের সাথে কাজ বলে মনে হয় (2.3+, Q2 এর + + 2015) উল্লেখ করা হয় অনুদান 'র আরো বেশি আপ-টু-ডেট উত্তর :

  1. সূচক মুছুন

    $ rm .git/index
    
  2. সব যোগ কর

    $ git add -A
    
  3. সমর্পণ করা

    $ git commit -a
    

আসল উত্তর (দেরীতে ২০১৪)
স্বাভাবিক কাজটি হ'ল:

  • আবার নতুন স্থানীয় রেপোতে রিমোট রেপো ক্লোন করুন
  • প্রথম রেপো থেকে দ্বিতীয়টিতে পরিবর্তনগুলি যুক্ত করুন:

    $ cd /patH/to/second/cloned/repo
    $ git --work-tree=/path/to/first/repo add .
    

আপনি এই ত্রুটি বার্তাকে read-cache.cএই প্যাচে আলোচিত (" read-cache.c: নিশ্চিত করুন যে নিমজ্জিত এন্ট্রিগুলি সরানো হয়েছে "), এবং গিট ২.২ কমিটে প্রবর্তিত আছে ।
যেহেতু এটি এত সাম্প্রতিক, তাই সম্ভব যে গিটকে ২.১ এ ডাউনগ্রেড করা সেই প্যাচ দ্বারা প্রভাবিত না হওয়ার পক্ষে যথেষ্ট হবে।

ওপি ড্যানিয়েল Toebe যোগ মন্তব্য :

সমস্যাটি আমার ম্যাকবুকে ঘটেছিল, যা আমার উপর ব্যর্থ হওয়ার সিদ্ধান্ত নিয়েছিল এবং অন্য একটি কম্পিউটার বিপর্যয় আমাকে আমার প্রকল্পগুলিতে পিছনে ফেলেছে।


@ শার্পনার এটি সম্ভব যে এটি কোনও বাগ, বা আপনার ক্ষেত্রে সেই প্যাচটির পার্শ্ব-প্রতিক্রিয়া।
ভনসি

1
বিলম্বিত প্রতিক্রিয়ার জন্য দুঃখিত ... সমস্যাটি আমার ম্যাকবুকে ঘটেছিল, যা আমার উপর ব্যর্থ হওয়ার সিদ্ধান্ত নিয়েছিল এবং অন্য একটি কম্পিউটার দূর্ঘটনা আমাকে আমার প্রকল্পগুলিতে পিছনে ফেলেছে।
ড্যানিয়েল তোয়েব

1
পছন্দ করুন আরও দৃশ্যমানতার জন্য আমি এটিকে উত্তরে অন্তর্ভুক্ত করেছি।
ভনসি

আমি কেবল তার মধ্যেই ছড়িয়ে পড়লাম, একটি চেষ্টার পরেgit commit -c sha
ক্রিস লেইশম্যান ২

2
যে কোনও আগ্রহের জন্য, আমার কাছে এটি ঘটেছিল কারণ আমি ভুলক্রমে ফাইলটির পরিবর্তে আমার .git ফোল্ডারে একটি ফাইল সম্পাদনা করছি।
ostler.c

166

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

@ স্লাইডার যে পরামর্শ দিয়েছিলেন তার অনুরূপ (আমি বিশ্বাস করি যে সে পথটি ভুল টাইপ করেছে) আমি আমার সংগ্রহস্থলে .git / সূচি ফাইলটি মুছে ফেলার মাধ্যমে এই সমস্যাটি সমাধান করতে সক্ষম হয়েছি।

rm .git/index

তারপরে আমাকে আবার আমার স্থানীয় পরিবর্তনগুলি যুক্ত করতে এবং প্রতিশ্রুতিবদ্ধ করতে হয়েছিল

git add -A
git commit -m "..."

আমি তখন দূরবর্তীভাবে ধাক্কা দিতে সক্ষম হয়েছি।

গিট সূচক কী এবং এটি কীভাবে প্রাসঙ্গিক?

গিট ইনডেক্সের সাথে ডিল কী?

গিট "সূচক" হ'ল যেখানে আপনি গিট সংগ্রহস্থলে প্রতিশ্রুতিবদ্ধ ফাইলগুলি স্থাপন করেন।

গিট সংগ্রহস্থলগুলিতে ফাইলগুলি "প্রতিশ্রুতিবদ্ধ" (চেকিন) করার আগে আপনাকে প্রথমে ফাইলগুলিকে গিট "সূচক" এ স্থাপন করতে হবে।

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

সম্পাদনা: মনে হচ্ছে এটি ম্যাক সম্পর্কিত (মন্তব্যের ভিত্তিতে) সম্পর্কিত তাই এটি যদি আমি ওএসএক্স ১০.১০ এবং গিট সংস্করণ ২.৩.৪ ইনস্টল করতে সহায়তা করে bre


1
হ্যাঁ, এটি কাজ করেছে এবং ব্যাখ্যাটির জন্য আপনাকে ধন্যবাদ। এখানে করার আগে একটি সতর্কতা হ'ল আপনি বর্তমান ডিফল্ট পরিবর্তন তালিকাটি যোগ করেন নি এমন কোনও ফাইলকে স্ট্যাশ বা মুভিং বা মুছে ফেলা। তারা সঙ্গে ফিরে স্তন্যদান হবেgit add -A
কারবি

4
ম্যাক ওএস এক্স ইয়োসেমাইটে এটি নিশ্চিত করুন। অ্যান্ড্রয়েড স্টুডিওতে কাজ করার সময় ঘটেছিল, যদিও সেখানে কোনও নির্দিষ্ট পুনরুত্পাদনযোগ্য দৃশ্য ছিল না ..
ড্রু

4
এটি সঠিক উত্তর হওয়া উচিত কারণ এটি কাজ করে এবং এর আরও ভাল ব্যাখ্যা রয়েছে। এটি ঠিক আমার সাথেও হয়েছিল।
জ্যারেড বুরোজ 12'15

1
আমার জন্যও কাজ করেছেন। ইন্টেলিজজে সংস্করণ নিয়ন্ত্রণের রুট যুক্ত করা এটি বিরক্ত হয়েছে তবে গিট সূচকটি ভালভাবে কাজ করেছে। @ গ্রান্টের ব্যাখ্যার জন্য ধন্যবাদ।
অ্যান্ড্রু ইয়েলস 14:25

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

119

প্রকল্পের জন্য

rm .git/index
git reset

সূচি মোছার পরে আপনার গিটটি পুনরায় সেট করে এটি পুনরায় তৈরি করতে হবে

সাবমডিউল জন্য:

মূল প্রকল্প ফোল্ডারে যান

rm .git/modules/your_project_structure/index
git reset --hard HEAD

4
সূচকটি অপসারণের পরে গিটটি পুনরায় সেট করুন এটি পুরোপুরি পেরেক দিয়েছিল। ধন্যবাদ! আপনি যদি রিসেট না করেন তবে প্রতিটি ফাইল সূচীতে নতুন হবে, তাই যুক্ত করতে হবে। পুনরায় সেট করা সূচকটি পুনর্নির্মাণ করবে বলে মনে হয়। যদিও আমি বুঝতে পারি না গিট কীভাবে কোনও সূচক ছাড়াই সূচকটি পুনর্নির্মাণ করতে পারে?
জোসফ্যাব্রে

1
@ জোসফ্যাবার কারণ সূচী ইতিহাস প্রতিশ্রুতিবদ্ধ নয়। আসলে এটি "রিডানড্যান্ট" সহায়ক কাঠামো। Schacon.github.io/gitbook/7_t_git_index.html দেখুন যাতে এটি কার্যকরী গাছ এবং হেডের তুলনা করে পুনর্নির্মাণ করা যায়। এবং এটিই গিট রিসেট করে। ম্যান পেজটি বলে: ... << ট্রি-ইশ> থেকে সূচকে অনুলিপি
অনুলিপিগুলি

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

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

1
সবচেয়ে পরিষ্কার এবং দ্রুততম উপায়!
h4rd4r7c0r3

29

আপনি আপনার প্রকল্প থেকে গিট সূচি ফাইলটি সরাতে পারেন। আপনার প্রকল্পের মূলে, নিম্নলিখিত কমান্ডটি চালান:

rm .git/index

তার পরে এটি কাজ করে।


3
এটি প্রশ্নের উত্তর দেয় না। দয়া করে এই উত্তরটি আরও বিশদ সহ সন্ধান করুন।
আর্টঅফকোড

আমার জন্য rm: /.git/index: No such file or directoryম্যাক ওএসএক্স ইয়োসেমাইট কাজ করেনি ; হোমব্রিউয়ের মাধ্যমে গিট 2.3.4 ইনস্টল করা হয়েছে
অনুদান দিন

@ গ্রেট আপনাকে শুরুতে স্ল্যাশ সরিয়ে ফেলতে হবে। ( rm .git/indexআপনার গিট ডিরেক্টরিতে)।
ক্রিস্টোফএলএসএ

2
@ ক্রিসটফএলএসএ আপনাকে ধন্যবাদ - আমি স্পষ্টতা প্রদান করতে এই পদক্ষেপটি কী করে তার একটি বিবরণ দিয়ে উত্তর দিয়েছি। সঠিক উত্তর প্রতিফলিত করতে এবং ক্রিয়াটি কী করে তা ব্যবহারকারীদের জানাতে এই উত্তরটি আপডেট করা যেতে পারে?
অনুদান দিন

1
আমি জানি কেন এটি কাজ করে। সমস্যাটি একটি দূষিত সূচক দ্বারা সৃষ্ট। কমান্ড লাইনে একটি প্রতিশ্রুতিবদ্ধ বার্তা লেখার সময় আমি ইন্টেলিজজে কোড সংশোধন করে সূচককে দূষিত করেছি তখন আমি এই সমস্যার মধ্যে পড়েছিলাম। সূচি মোছা আপনার পরিবর্তনগুলি ধ্বংস করে না, এটি কেবল এগুলি আনস্টেজ করে।
পাইরোলিস্টিকাল

3

আমি একটি ভিন্ন সমাধান চেষ্টা করি এবং এটি আমার পক্ষে কাজ করে। নীচে আমার বিকল্প আছে

#cd .git
#rm index
#cd ..
#git add .

যেমন @ ফারিনক্জ বলেছিলেন, আপনাকে আবার কল করে সূচি পুনরায় তৈরি করতে হবে git resetঅন্যথায় এটি আপনাকে দেয় fatal: Could not reset index file to revision 'HEAD'
কুস্কমেন

1

যদি এটি একটি সাবমডিউলে ঘটে

সূচী ফাইলটি মূল .gitডিরেক্টরিটির ভিতরে অবস্থিত :

.git/modules/your_project_structure/index

একটি সাবমডিউলে, কোনও ডিরেক্টরি নাম নেই .git(অন্তত আমি যে প্রকল্পে কাজ করছি তাতে) কেবলমাত্র একটি only.git ফাইল রয়েছে যা আপনাকে (এবং গিট) বলে দেয় যেখানে সেই প্রকল্পের গিট ডিরেক্টরিটি কোথায় অনুসন্ধান করা যায়।

গিট স্ট্যাটাসটি এমন পরিবর্তনগুলি দেখায় যা আমি করিনি

সূচী ফাইলগুলি মুছে ফেলার পরে এবং একটি করে git reset , আমি নিজেকে অনেকগুলি অনির্বচনীয় পরিবর্তনগুলির মুখোমুখি হয়েছি এবং একটি হার্ড রিসেট সাহায্য করছে না।

সতর্কতা আপনি আপনার সমস্ত পরিবর্তন হারাবেন, সুতরাং এগুলি প্রতিশ্রুতিবদ্ধ এবং চালিয়ে যাওয়ার আগে চাপ দিন।

সূচকটি দূষিত বলে মনে হয়েছিল, তাই আমি নিম্নলিখিত কমান্ডগুলি সহ এটি সরিয়েছি।

git rm -rf --cached .
git reset --hard HEAD

0

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

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