গিট: ট্র্যাক করা ফাইল উপেক্ষা করুন


182

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

এটা কি সম্ভব?



5
এই ফাইলগুলি যদি বিল্ড দ্বারা স্বয়ংক্রিয়ভাবে উত্পন্ন হয়, তবে সেগুলি গিটে ট্র্যাক করা উচিত নয়।
কোডবলিং

এখানে গিটিগনোরের একটি দ্রুত টিউটোরিয়াল যা আপনাকে দরকারী মনে করতে পারে: learningpassion.wordpress.com/2016/06/17/…
জোকার

উত্তর:


283

অবশ্যই।

git update-index --assume-unchanged [<file> ...]

পূর্বাবস্থায় ফিরে আসার জন্য এবং আবার ট্র্যাকিং শুরু করতে:

git update-index --no-assume-unchanged [<file> ...]

3
এই অবস্থায় ফাইলগুলিতে কী ঘটবে যদি আমি সেগুলিতে সংশোধন করি?
হাইম্যানসফিল্ড

2
কমান্ডের জন্য সাহায্য পৃষ্ঠাটি হাইমানসফিল্ডে নিম্নলিখিতটি বলেছেGit will fail (gracefully) in case it needs to modify this file in the index e.g. when merging in a commit; thus, in case the assumed-untracked file is changed upstream, you will need to handle the situation manually.
পারহাম

3
--assume-unchangedক্লোনিংয়ের উপর প্রয়োগ করার কোনও উপায় ? যাতে সমস্ত ব্যবহারকারীর কাছে ফাইল থাকে তবে তাদের মধ্যে স্থানীয় পরিবর্তনগুলি ভিন্নতায় না দেখে।
গৌথির

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

5
@Watbywbarif আমার কাছে কমান্ডটি git update-index --no-assume-unchanged $(git ls-files $(git rev-parse --show-toplevel))গিট ওরফে হিসাবে সেট করা আছে । যখনই আমি সন্দেহ করি এটি এই শেননিগানগুলির মধ্যে কিছু আমি কেবল এটি করি।
ফিলিপ কার্ফিন

6

আরেকটি পদ্ধতির (শেঠ রবার্টসনের একটি মুছে ফেলা উত্তর থেকে, তবে আমি এটি পুনরুত্থিত করতে সহায়ক বলে মনে করেছি) একটি "ট্র্যাকড" টেম্পলেট ফাইল বজায় রাখা, তারপরে এর স্থানীয় অবিরত সংস্করণ থাকতে হবে, যেমন: "config.sample.ini" বা " config.ini.template " একটি সম্পূর্ণ উদাহরণের জন্য https://gist.github.com/canton7/1423106 দেখুন ।

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


5

ফিল্টার কমান্ডে গিট বৈশিষ্ট্য এবং% f ব্যবহার করে অন্য একটি সমাধান:

git config filter.orig.clean "cat %f.orig"
cp filename filename.orig
echo "filename filter=orig" >> .git/info/attributes
echo "filename.orig" >> .git/info/exclude

16
এর অর্থ কী এবং এটি যথাযথভাবে কী করছে সে সম্পর্কে আপনি আরও বিশদ দিতে পারেন?
রজারডপ্যাক

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