অবশ্যই, আমি সময় সময় ব্যবহার করে ঠিক এটি করি
git update-index --assume-unchanged [<file> ...]
পূর্বাবস্থায় ফিরে আসার জন্য এবং আবার ট্র্যাকিং শুরু করতে (যদি আপনি ভুলে গিয়েছিলেন যে কোন ফাইলগুলি তালাবিহীন ছিল, এই প্রশ্নটি দেখুন ):
git update-index --no-assume-unchanged [<file> ...]
প্রাসঙ্গিক ডকুমেন্টেশন :
- [no-] অনুমান-অপরিবর্তিত
এই পতাকাটি নির্দিষ্ট করা হলে, পাথগুলির জন্য রেকর্ড করা অবজেক্টের নামগুলি আপডেট হয় না। পরিবর্তে, এই বিকল্পটি পাথগুলির জন্য "ধার্য অপরিবর্তিত" বিট সেট / আনসেট করে। যখন "অনুমান অপরিবর্তিত" বিট চালু থাকে তখন ব্যবহারকারী ফাইলটি পরিবর্তন না করার প্রতিশ্রুতি দেয় এবং গিটকে ধরে নিতে অনুমতি দেয় যে কার্যকারী ট্রি ফাইলটি সূচীতে রেকর্ড করা আছে তার সাথে মেলে। আপনি যদি কাজের গাছের ফাইলটি পরিবর্তন করতে চান তবে গিটকে জানানোর জন্য আপনাকে বিটটি আনসেট করতে হবে। খুব ধীর lstat(2)
সিস্টেম কল (যেমন সিআইএফ) থাকা কোনও ফাইল সিস্টেমে কোনও বড় প্রকল্পের সাথে কাজ করার সময় এটি কখনও কখনও সহায়ক হয় ।
সূচীতে এই ফাইলটি সংশোধন করার প্রয়োজন হলে গিট ব্যর্থ হবে (কৃপণভাবে) যেমন কোন প্রতিশ্রুতিতে মার্জ করার সময়; সুতরাং, যদি ধরে নেওয়া-অচিহ্নযুক্ত ফাইলটি প্রবাহে পরিবর্তিত হয়, আপনাকে পরিস্থিতিটি নিজেই পরিচালনা করতে হবে।
এই ক্ষেত্রে কৃত্রিমভাবে ব্যর্থ হওয়ার অর্থ হ'ল, আপনি যখন কোনও টান দেবেন তখন যদি সেই ফাইলটিতে (বৈধ পরিবর্তনগুলি, ইত্যাদি) প্রবাহিত প্রবাহে কিছু পরিবর্তন হয়, তবে এটি বলবে:
$ git pull
…
From https://github.com/x/y
72a914a..106a261 master -> origin/master
Updating 72a914a..106a261
error: Your local changes to the following files would be overwritten by merge:
filename.ext
এবং মার্জ করতে অস্বীকার করবে।
এই মুহুর্তে, আপনি স্থানীয়ভাবে পরিবর্তনগুলি পরিবর্তন করে এটি কাটিয়ে উঠতে পারেন, এখানে একটি উপায়:
$ git checkout filename.ext
তারপরে আবার টানুন এবং আপনার স্থানীয় ফাইলটি পুনরায় সংশোধন করুন, বা সেট করতে পারে –no-assume-unchanged
এবং আপনি সেই সময়ে সাধারণ স্ট্যাশ এবং মার্জ ইত্যাদি করতে পারেন।