ইতিমধ্যে বলা হয়েছে, স্থিতি থেকে বাদ দিতে কেবল ব্যবহার করুন:
git status -uno # must be "-uno" , not "-u no"
পরিবর্তে আপনি যদি নিজের প্রকল্পের মূল থেকে শুরু করতে পারেন তবে বর্তমানে চিহ্নিত করা ফাইলগুলিকে স্থায়ীভাবে উপেক্ষা করতে চান, লঞ্চ করুন:
git status --porcelain | grep '^??' | cut -c4- >> .gitignore
পরবর্তী প্রতিটি কল git statusস্পষ্টভাবে এই ফাইলগুলিকে উপেক্ষা করবে।
আপডেট : উপরের কমান্ডটির একটি ছোটখাটো অসুবিধা রয়েছে: যদি আপনার কাছে .gitignoreফাইল না থাকে তবে আপনার গিটিগনোর নিজেই উপেক্ষা করবে! এটি ঘটায় কারণ এক্সিকিউট .gitignoreহওয়ার আগে ফাইলটি তৈরি হয়ে যায় git status --porcelain। সুতরাং আপনার কাছে যদি .gitignoreএখনও কোনও ফাইল না থাকে তবে আমি ব্যবহার করার পরামর্শ দিচ্ছি:
echo "$(git status --porcelain | grep '^??' | cut -c4-)" > .gitignore
এই subshell যা সমাপ্ত সৃষ্টি সামনে.gitignore ফাইল তৈরি করা হয়।
কমান্ড ব্যাখ্যা হিসাবে আমি ভোট অনেকটা পেয়ে করছি (তোমাকে ধন্যবাদ!) আমি মনে করি আমি ভাল কমান্ড একটু ব্যাখ্যা চাই:
git status --porcelainএর পরিবর্তে ব্যবহৃত হয় git status --shortকারণ ম্যানুয়াল জানিয়েছে "স্ক্রিপ্টগুলির জন্য সহজেই পার্সেল ফর্ম্যাটে আউটপুটটি দিন This এটি সংক্ষিপ্ত আউটপুটের মতো, তবে গিট সংস্করণ জুড়ে স্থিতিশীল থাকবে এবং ব্যবহারকারী কনফিগারেশন নির্বিশেষে।" সুতরাং আমাদের উভয় পার্সিবিলিটি এবং স্থিতিশীলতা রয়েছে;
grep '^??'গিটার স্থিতি ম্যানুয়াল?? অনুসারে , কেবল চিহ্ন ছাড়াই শুরু হওয়া লাইনগুলি ফিল্টার করে;
cut -c4- প্রতিটি লাইনের প্রথম 3 টি অক্ষর সরিয়ে দেয়, যা আমাদের অচিহ্নযুক্ত ফাইলের জন্য কেবল আপেক্ষিক পথ দেয়;
|প্রতীক পাইপ , যা নিম্নলিখিত কমান্ডের ইনপুট পূর্ববর্তী কমান্ডের আউটপুট পাস;
>>এবং >চিহ্ন পুনর্নির্দেশ অপারেটার , যা একটি ফাইল বা মুছে ফেলা হয় আগের কমান্ডের আউটপুট যোগ / যথাক্রমে একটি নতুন ফাইল তৈরি করে।
যারা পরিবর্তে ব্যবহার করতেsed পছন্দ করেন তাদের জন্য অন্য কোনও বৈকল্পিকgrep এবং cut, এখানে আরও একটি উপায় রয়েছে:
git status --porcelain | sed -n -e 's/^?? //p' >> .gitignore