.gitignore নির্দিষ্ট ফাইল বাদ দিন


94

আমি ফোল্ডারে অবস্থিত .gitignoreবাদে ফাইল ব্যবহার করার চেষ্টা করছি । আমার ফাইলটি এমন দেখাচ্ছে:templates.jspublic/app/.gitignore

/vendor
/node_modules
composer.phar
composer.lock
.DS_Store
templates.js

তবে আমি যখন গিট গুইতে পরীক্ষা করি তখন templates.jsফাইলটি এতে প্রদর্শিত হয়। কীভাবে আমি একটি ফাইল ব্যবহার করে বিশেষত বাদ দিতে পারি .gitignore?


4
এর অর্থ কি ফাইলটি ইতিমধ্যে ভাণ্ডারগুলিতে যুক্ত হয়ে গেছে? .gitignoreশুধুমাত্র যোগ করার বিষয়বস্তু উপেক্ষা করে।
উইলেম ভ্যান ওনসেম

4
@ কমবুসফট হ্যাঁ, এটি পূর্বে ভান্ডারে যুক্ত করা হয়েছে। সুতরাং, আমি এখনই কীভাবে এটি বাদ দিতে পারি? আমার কাজ করার পদ্ধতি কি .gitignoreসঠিক?
ব্যবহারকারী 1995781

উত্তর:


152

নামটি "উপেক্ষা করুন" তার বিপরীতে। .gitignoreআপনি যখন git addফাইল করেন কেবল তখনই পরামর্শ নেওয়া হয় : অন্য কথায়, ইতিমধ্যে (সূচকের) ভাণ্ডারে যোগ করা কোনও ফাইল এর উপর ভিত্তি করে বাদ দেওয়া হবে না .gitignore

প্রথমে আপনি আরও ভালভাবে সংশোধন করুন .gitignoreযে ফাইলটি আর যুক্ত করা হয় না। .gitignoreফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করুন:

public/app/template.js

এরপরে আপনার সংগ্রহস্থল থেকে ফাইলটি বাদ দিতে হবে। সম্ভবত আপনি নিজের ফাইল সিস্টেম থেকে ফাইলটি সরাতে চান না , এটি দিয়ে এটি করা যেতে পারে:

git rm --cached public/app/template.js

--cachedপতাকা ফাইলটি আপনার ফাইল সিস্টেম থেকে সরানো হবে না নিশ্চিত। (গুরুত্বপূর্ণ নয়, তাহলে আপনি ব্যবহার করতে পারেন git rm public/app/template.js, কিন্তু এই ফাইলটি মুছে ফেলা হবে )।

পটভূমি

.gitignoreসক্রিয়ভাবে ব্যবহার না করার কারণটি হ'ল আপনি কখনও কখনও এটিকে ওভাররাইড করতে চাইতে পারেন .gitignore। উদাহরণস্বরূপ বলুন আপনি ট্র্যাক করতে চান না *.logফাইল, আপনি নির্দিষ্ট করতে পারেন *.logমধ্যে .gitignore। তবে যদি কোনও নির্দিষ্ট থাকে তবে আপনি ট্র্যাক করতে চান আপনি যুক্ত করতে পারেন git add -f some.log-fপতাকা বাহিনীর gitফাইল যোগ করতে।


একটি জীবন
রক্ষাকারী

21

একবার গিট সংগ্রহস্থলটিতে একটি ফাইল 'যুক্ত' হয়ে গেলে, এটি .gitignore ফাইলটিতে তালিকাভুক্ত হয় বা না তা নির্বিশেষে এটি ট্র্যাক করা অবিরত থাকবে।

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

গিট সংগ্রহস্থল (কমান্ড-লাইন) মোছা না করে কোনও ফাইল সরানোর উপায় এটি

git rm --cached FILENAME

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

মনে রাখবেন যে আপনি যদি আপনার গিটিগনোরের মধ্যে একটি ফাইল যুক্ত করে থাকেন তবে ফাইলটি আপনার ম্যানুয়াল যুক্ত করে গিটিগনোরকে ওভাররাইড করবে।


ধন্যবাদ প্রিয়, "গিট আরএম - ক্যাচড ফাইল ফাইল" কবিতার মতো কাজ করেছে :)
কমলেশ

11

আপনি যদি ইতিমধ্যে কোনও ফাইল ( git addএটিতে এবং git commit) ট্র্যাক করে থাকেন তবে .gitignoreসহায়তা করবে না।

আমি বিশ্বাস করি আপনি যা চান তা হ'ল কোনও ফাইল ট্র্যাকিং বন্ধ করা এবং তারপরে.gitignore এটি বাদ দেওয়ার জন্য ব্যবহার করুন । কোনও ফাইল ট্র্যাকিং বন্ধ করতে তবে ফাইলটি রাখতে, ব্যবহার করুন:

git rm --cached <file>


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

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

7

এই ক্ষেত্রে আপনি ট্র্যাকিং বন্ধ করতে পারবেন templates.jsসঙ্গে

git rm --cached public/app/templates.js

অন্যরা যেমন ব্যাখ্যা করেছে, .gitignoreকেবল যোগ করার বিষয়বস্তু উপেক্ষা করে। উদাহরণস্বরূপ, আপনি যদি ঘন ঘন ব্যবহার করেন git add .এবং এতে templates.jsথাকেন .gitignoreতবে গিট এটি যুক্ত করবে না।

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