গিট আপডেট-ইনডেক্স - আসাম-অপরিবর্তিত আয় "ফাইল চিহ্নিত করতে মারাত্মক অক্ষম"


133

আমার এই পোস্টে ওপি-র মতো একই সমস্যা হচ্ছে , তবে উত্তরটি সঠিক হিসাবে চিহ্নিত হিসাবে আমি বুঝতে পারি না (পরিস্থিতিটি কীভাবে ঠিক করা যায় তা ব্যাখ্যা করে আমি দেখতে পাই না)

আমি এটি করি এবং এই ত্রুটিটি পেয়েছি:

$ git update-index --assume-unchanged web.config
fatal: Unable to mark file web.config
  1. ফাইলটি সংগ্রহস্থলটিতে যুক্ত করা হয়েছে

  2. এটা না .git/info/exclude

  3. এটি এতে নেই .gitignore(এটি ছিল তবে আমি এটি বের করে দিয়েছিলাম, তারপরে ওয়েবকনফিগকে বাধ্যতামূলকভাবে এই পরিবর্তনগুলি রেপোতে যুক্ত করতে বাধ্য করা হয়েছিল git add -f web.config)

  4. আমি যখন গিট এলএস-ফাইল করি - তবে তা থাকে না

তাহলে আমি কী ঠিক করতে পারি?


1
রেফারেন্সড প্রশ্নের মধ্যে গৃহীত উত্তরটি পুনরায় পড়ুন: এটি আউটপুটে প্রদর্শিত হবে না git ls-files -o। যদি তা হয়, এটি রেপোতে নেই।

আমার টাইপো, এটি তালিকায় নেই, এবং এটি অবশ্যই রেপোতে রয়েছে
কারেন

উত্তর:


108

আমি আপনার মতো একই সমস্যা পেয়েছি এবং আপনি উপরে উল্লিখিত একই চারটি পদক্ষেপ অনুসরণ করেছিলেন এবং একই ফলাফল পেয়েছিলাম। এটি বাস্তবায়নের সময় আমার ফাইল তালিকাভুক্ত হয়েছিল এই বিষয়টি অন্তর্ভুক্ত করে git ls-files -o। তবে আমার ক্ষেত্রে, আমি এমন git update-index --assume-unchangedএকটি ফাইলের বিরুদ্ধেও মৃত্যুদণ্ড কার্যকর করার চেষ্টা করেছি যা মৃত্যুদন্ড কার্যকর করার সময় তালিকাভুক্ত ছিল না ls-files -oএবং আমি এখনও একই ত্রুটি পেয়েছি fatal: Unable to mark file

আমি ভেবেছিলাম সম্ভবত এটি একটি বাগ ছিল এবং গিটের সর্বশেষ সংস্করণটি ডাউনলোড করেছে, তবে এটি কোনও লাভ হয়নি।

আমি অবশেষে যা বুঝতে পেরেছি তা হল এই আদেশটি কেস সংবেদনশীল! এটিতে পুরো পথ এবং ফাইলের নাম অন্তর্ভুক্ত রয়েছে। ডিরেক্টরিটিতে পাথ আপডেট করার পরে যাতে সঠিক ক্যাসিং সহ পুরো পাথটি নির্দিষ্ট করা হয়, কমান্ডটি সঠিকভাবে কার্যকর করা হয়েছিল।

নোট করুন যে এটি উইন্ডোজের জন্য উইন্ডোজ ছিল, সুতরাং আপনার ফলাফলগুলি অন্য প্ল্যাটফর্মগুলির সাথে পৃথক হতে পারে।


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

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

1
ধন্যবাদ, এটি পরোক্ষভাবে আমাকে একটি প্রকল্পের কিছু খারাপ শেল স্ক্রিপ্ট আবিষ্কার করতে সহায়তা করেছে। যদি কোনও পথের অস্তিত্ব না থাকে তবে এটি ব্যর্থ হবে! :)
উছুগাকা

এছাড়াও লক্ষ করুন যে এই আদেশটি রূপান্তরিত ফাইলগুলির জন্য কাজ করবে না। আপনার কাছে যদি এমন কোনও ফাইল থাকে যা ভাণ্ডারটিতে বিদ্যমান না থাকে তবে এটি .gitignore এ উপেক্ষা করা যেতে পারে, এবং ছেলেটি কি আমি নির্বোধভাবে এটি টাইপ করে বোধ করি তবে আমি বুঝতে পারি যে এটি আমার মতো বোবা ব্যক্তিকে সাহায্য করতে পারে। :)
জেসি আইভী

কিছু মন্তব্য কীভাবে ইঙ্গিত করেছে তা স্পষ্ট করার জন্য, আপনি যদি এমন একটি উইন্ডোজ শেল ব্যবহার করেন যা আপনাকে আপনার সিডিতে কেস ম্যাচমুচ করে ফেলেছে তবে আপনি এই ত্রুটিটি পেয়ে যাবেন get হয় ফাইলটিকে পুরো পথটি (সঠিক কেস সহ) দিন, বা সিডি ব্যাক আপ করুন এবং তারপরে আবার নীচে (আবার প্রতিটি স্তরে সঠিক কেস সহ)।
ডিএলএফ

54

আমি একটি ম্যাক একই সমস্যা ছিল। কেস-সংবেদনশীলতা আমার পক্ষে সমস্যা ছিল না - সমস্যাটি আমার প্রথমে আমার গিটটি পুনরায় সেট করার দরকার ছিল:

সমস্যা:

 git update-index --assume-unchanged index.php
 fatal: Unable to mark file index.php

সমাধান:

git reset HEAD
Unstaged changes after reset:
M   index.php
git update-index --assume-unchanged index.php

2
ম্যাকের ক্ষেত্রেও আমার একই সমস্যা রয়েছে এবং প্রস্তাবিত ওয়ার্কআরউন্ডগুলির কোনওটিই আমার পক্ষে কাজ করে না। কোন ধারণা? আমি কেবলমাত্র আমার মেশিনে অস্থায়ীভাবে কোনও ডিরেক্টরি ট্র্যাকিং বন্ধ করার চেষ্টা করছি, দির নামটি ইন্টেলিজ_দেয়া_প্রজেক্ট_ফাইলেস /। স্পষ্টতই এই ডিরেক্টরিতে থাকা সমস্ত ফাইলই একটি ব্যতীত যথাযথভাবে চিহ্নিত করা হয়েছে এবং এটি আমার_প্রজেক্ট_নাম.আইএমএল।
জাভাদ সাদেকজাদেহ

1
একই সমস্যা ছিল এবং এটিই সমাধানটি আমার পক্ষে কাজ করেছে, কেস-সংবেদনশীল সম্পর্কে একটাই নয়
সিজারপিম

আমি ম্যাক এও আছি এবং আমার জন্য "সমাধান" ফাইলটি মুছে ফেলা ছিল। (আমি এটি একটি উত্তর হিসাবে পোস্ট করব তবে আমি নিশ্চিত যে কি ঘটেছে, সম্ভবত পরে।) কিছু অদ্ভুত ঘটনা ঘটেছে। গিট বলছিলেন ফাইলটি পরিবর্তন করা হয়েছে (আমি চাইছিলাম --skip-worktree)। আমি দৌড়ের মাধ্যমে স্থানীয় পরিবর্তনগুলি থেকে মুক্তি পেয়েছি git restore .তবে ত্রুটিটি দিয়ে যায়। শেষ পর্যন্ত আমি ফাইলটি মুছে ফেলার চেষ্টা করেছি। মর্মাহতভাবে, গিট কোনও পরিবর্তন হয়েছে তা বলেনি। তাই স্পষ্টতই মজার কিছু ঘটেছে যেহেতু গিট অবশ্যই এটি ট্র্যাক করেছিল এবং আমি অবশ্যই এটি মুছে ফেলেছিলাম এবং এটি অবশ্যই বলেছিল না যে এটি একটি পরিবর্তন ছিল।
ক্যাপ্টেন ম্যান

25

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

ত্রুটিপূর্ণ -

git update-index --assume-unchanged directory-name

সঠিক -

git update-index --assume-unchanged directory-name/

ফরোয়ার্ড স্ল্যাশ (/) শেষে নোট করুন।


1
ধন্যবাদ, তবে আমি যখন এটি করি তখন আমি পাথ ডিরেক্টরি-নাম / উপেক্ষা "
দামিয়ান

@ দামিয়ান পিতামাতার ডিরেক্টরি পরিবর্তে সম্পূর্ণ ফাইলের পাথ নির্দিষ্ট করুন।
নাহিদ

6

মারাত্মক: ফাইল স্থানীয়করণ / el-GR.js চিহ্নিত করতে অক্ষম

আপনি যা করতে পারেন তা হ'ল:

  1. আপনার স্থানীয় যেখানে ফাইলটি উপস্থিত রয়েছে সেখানে সঠিক পথে যান (জিআইটিবিএসএইচ)
  2. সূচক আপডেট করুন $git update-index --assume-unchanged <file name>

এই আমাকে সাহায্য! :)


2
$ git update-index --assume-unchanged ./.idea/vcs.xml fatal: Unable to mark file .idea/vcs.xml $ cd .idea git update-index --assume-unchanged .কাজ করেছেন, ধন্যবাদ!
এভিপ্রোগ্রামার

4

যদি আপনার পথে ফাঁকা জায়গা থাকে তবে আপনার কেসিং ডান থাকলেও আপনি এই ত্রুটিটি পেতে পারেন।

এটি "মারাত্মক" ত্রুটির ফলস্বরূপ:

git update-index --assume-unchanged code/Solution Files/WebEssentials-Settings-json

এটি ঠিক করার জন্য, কেবল পথের চারপাশে উদ্ধৃতি যুক্ত করুন।

git update-index --assume-unchanged "code/Solution Files/WebEssentials-Settings-json"

আমার ক্ষেত্রে আমার / পিছনের দিকে ছিল।
এরিক বার্গস্টেট

4

আমার সমস্যাটি হ'ল, আমি আদেশটি একটি * ওয়াইল্ডকার্ড দিয়ে অনুমান করেছিলাম এটি পুনরাবৃত্তি হবে বলে ধরে নিয়েছে, তবে তা হয়নি।

তাই আমি যা করেছি তা ছিল

$ git reset HEAD
Unstaged changes after reset: 
M   .gradle/1.9/taskArtifacts/cache.properties.lock
M   .gradle/1.9/taskArtifacts/fileHashes.bin
M   .gradle/1.9/taskArtifacts/fileSnapshots.bin
M   .gradle/1.9/taskArtifacts/outputFileStates.bin
M   .gradle/1.9/taskArtifacts/taskArtifacts.bin

নির্বাহ

$ git update-index --assume-unchanged .gradle/1.9/taskArtifacts/*

তখন আমার পক্ষে কাজ করেছিল এবং ওপি এবং আমার সমস্যার ফল দেয়নি।


4

আমি * .orig ফাইলগুলি আন-ট্র্যাক করার চেষ্টা করার সময় আমার এই সমস্যা হয়েছিল।

এগুলি আমি আনর্যাক করার জন্য এটি করেছি:

$git reset -- *.orig

যদি এটি কাজ করে না:

$git clean -fd

5
লোকেদের এই আদেশটি ফাইলগুলি মুছে দেবে না জানিয়ে তাদের কমান্ড কার্যকর করতে বলা বিপজ্জনক। it গিট ক্লিন-এফডি
এইচএস রাঠোর

4

গিট রেপোতে ফাইলটি যুক্ত হয়েছে তা নিশ্চিত করুন, যদি গিট রেপোতে ফাইলটি যুক্ত না করেন এবং তারপরে চেষ্টা করুন এটি কার্যকর হবে।


3

--assume-unchangedধীর ফাইল সিস্টেম সম্পর্কে এবং ব্যবহারকারীরা প্রতিশ্রুতি দেয় যে গিটকে এই ফাইলটি পরীক্ষা করার দরকার নেই, যেমন গিট তার অপরিবর্তিত হিসাবে ধরে নিতে পারে। তবে কিছু কমান্ড এখনও 'সারপ্রাইজ' পরীক্ষা করে দেখে!

যে ফাইলগুলি পরিবর্তন হয় সেগুলিতে ব্যবহার করবেন না।

সেই সংবাদের উদ্রেককারী হিসাবে দুঃখিত (সেই ডকুমেন্টেশনটি পরিবর্তনের জন্য আমার একটি প্যাচ রয়েছে)।


1
তারপরে কোনও ফাইল এটি 'আমাকে ট্র্যাক করবেন না' হিসাবে চিহ্নিত করার জন্য কীভাবে আপডেট করার কথা?
জাভাদবা

@javadba দেখতে stackoverflow.com/a/6964492/717355 'Git RM --cached ফাইলের নাম'
ফিলিপ Oakley,

thx - এতে উত্সাহিত: আমি আসলে এখানে পোস্ট করার পরে এটি ব্যবহার করেছি। কাজ করে।
জাভাদবা

মনে রাখবেন যে git rm --cached filenameঅন্যরা
রায়ান টেলর

@ রায়ানটায়লর হ্যাঁ, তাদের কমান্ড কী বলছে তা বুঝতে ব্যবহারকারীদের পক্ষে গুরুত্বপূর্ণ, যা 'এটি অনুসরণ করা বন্ধ করুন, এটি আমার সংশোধনগুলি থেকে সরান'। রক্ষণাবেক্ষণকারীটির সর্বশেষ দর্শন এবং আমার নতুন প্যাচটি পড়ুন .. সর্বজনীন-boxbox/git/20161101210448.4692-1-philipoakley@iee.org/…
ফিলিপ ওকলে

3

আমার ক্ষেত্রে, আমি উপরের যে কোনও পদ্ধতি ব্যবহার করার চেষ্টা করেছি, তবে ভাগ্য নেই।

অনেক চেষ্টার পরে, আমি কেবল আমার ফাইলটি সূচীতে যুক্ত করার চিন্তা করেছি।

git add myfile.php

গিট এই পদক্ষেপটি প্রত্যাখ্যান করেছে তবে তিনি আমাকে জোর করে এটি করার পরামর্শ দিয়েছেন।

git add myfile.php -f

এবং এটা আমার জন্য কাজ করে।


2

নিশ্চিত হয়ে নিন যে আপনি "ওয়েবকনফিগ" চেক ইন করেছেন।

যদি তা না হয় তবে আপনি এই ত্রুটি বার্তাটি পাবেন।


1

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


1

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

প্রথমে নিশ্চিত হয়ে নিন যে ফাইলটি চালিয়ে ট্র্যাক করা হয়েছে

git ls-files | grep relative_path/to/file

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

git add relative_path/to/file

এটি যদি আপনার ফাইলটি দেখায় বা আপনি ইতিমধ্যে এই ফাইলটি গিটে যোগ করেছেন তবে আপনার গিট অনুমান কমান্ডগুলি সাধারণত চালানো উচিত:

git update-index --skip-worktree relative_path/to/file

অথবা ফোল্ডারগুলির জন্য

git update-index --skip-worktree relative_path/to/folder/

আপনার ফাইলটি চালিয়ে উপেক্ষা করা হবে বলে ধরে নেওয়া হচ্ছে কিনা তা পরীক্ষা করতে পারেন

git ls-files -v | grep ^S

এস অক্ষর এড়িয়ে যাওয়া ফাইলগুলি উপস্থাপন করে।


0

সমস্ত ভবিষ্যতের দর্শনার্থীদের জন্য। উপরের কেউই আমার সমস্যা সমাধান করেনি। আমি যা বুঝতে পেরেছি তা হল .gitignoreফাইলটি অবশ্যই সঠিক ডিরেক্টরিতে রাখা উচিত। আমার ক্ষেত্রে, একবার আমি .gitignoreঅ্যাপ্লিকেশনের রুট ডিরেক্টরিতে চলে গেলে সমস্যাটি সমাধান হয়ে গেছে।


0

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


1
ভুল না হলেও এই উত্তরটি আসলে প্রশ্নের সাথে কিছু যুক্ত করে না। আপনার সমস্ত পরামর্শ ইতিমধ্যে বিদ্যমান উত্তরে নিয়ে আসা হয়েছে।
ম্যাট

0

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


0

আমি উইন্ডোতে সাইগউইন সম্পর্কে একই সমস্যা ছিল। পুরো ফাইল পাথ দেওয়া

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