পুনরাবৃত্তভাবে ফাইলগুলিকে .gitignore কিভাবে করবেন


105

আমি আমার .gitignoreফাইলে নিম্নলিখিত ধরণটি এড়াতে চেষ্টা করছি ।

MyPrject/WebApp/Scripts/special/*.js
MyPrject/WebApp/Scripts/special/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*/*.js

আমরা চেষ্টা করেছি:

MyPrject/WebApp/Scripts/special/**.js
MyPrject/WebApp/Scripts/special/**/*.js

এটি অবশ্য কাজ করে নি। এটি উইন্ডোজে গিট জিনিসগুলি পুনরাবৃত্তি না করে এটি করার আরও কিছুর উপায় আছে?


উত্তর:


114

1.8.2 গিট হিসাবে এটি:

MyPrject/WebApp/Scripts/special/**/*.js

এই উত্তর অনুযায়ী কাজ করা উচিত । এটি উইন্ডোজ 7 এ সোর্সট্রি 1.6.12.0 এবং এটি ইনস্টল করা গিট সংস্করণ (1.8.4-প্রাকদর্শন20130916) ব্যবহার করে আমার জন্য কাজ করে।

একটি ডিরেক্টরি অধীনে প্রতিটি ফাইল এবং ফোল্ডার পুনরাবৃত্তভাবে gitignore করতে:

MyPrject/WebApp/Scripts/special/**

1.8 গিট আগে কি?
ashes999

1
যদি এই উত্তরটি কার্যকর না হয় (উইন্ডোজে), /শুরুতে চরিত্রটি যুক্ত করুন । উদাহরণ:/MyProject/WebApp/Scripts/special/**/*.js
batressc

2
আমি বিব্রত বোধ করি যখন আমার উত্তরটি উত্তরটির উত্সাহ পেতে থাকে যখন এটি আক্ষরিক অর্থে অন্য উত্তরের লিঙ্ক হয় ।
স্যাম

1
@ পুক: .gitignoreএই প্রশ্নের উত্তরটি ছিল রেপো রুটে (এর মূল ডিরেক্টরি /Webapp)।
lucid_dreamer

1
আপনার উত্তরটি দেখতে ভাল লাগছে তবে উইন্ডোজ 10-এ নিম্নলিখিত ক্ষেত্রে জেএস বাদে সমস্ত ফাইল উপেক্ষা করার জন্য গিট 1.9.1 সহ আমার পক্ষে কাজ করেনি: (প্রথম লাইন) foo/bar/*/*(দ্বিতীয় লাইন) !foo/bar/**/*.jsএটি কেবলমাত্র এক স্তরের সাব-ডিরেক্টরিতে কাজ করেছে, তবে পুনরাবৃত্তির সাথে নয়।
এলএলএল

19

নিম্নলিখিত gitignore ম্যানুয়াল পৃষ্ঠা:

[...] গিটটি প্যাটার্নটিকে FNMATCH দ্বারা ব্যবহারের জন্য উপযুক্ত শেল গ্লোব হিসাবে বিবেচনা করে (3) FNM_PATHNAME পতাকা সহ: প্যাটার্নে ওয়াইল্ডকার্ড কোনও / প্যাথনামের সাথে মেলে না।

সুতরাং, এটি স্পষ্টভাবে দাঁড়িয়েছে যে দুটি স্ট্রিংয়ের মধ্যে নির্দিষ্ট পরিমাণ ডিরেক্টরি নির্দিষ্ট করার কোনও উপায় নেই , যেমন specialএবং এর মধ্যে js

তবুও, আপনার .gitignoreডিরেক্টরি প্রতি ফাইল থাকতে পারে , তাই আপনার ক্ষেত্রে নিম্নলিখিত লিখিত সামগ্রী থাকতে পারে

*.js

নিম্নলিখিত জায়গায়

MyPrject/WebApp/Scripts/special/.gitignore

যথেষ্ট হবে?


আমি থাকতাম MyPrject/WebApp/Scripts/special*.jsএবং এটি MyPrject/WebApp/Scripts/specialfile.jsপাশাপাশি মেলে MyPrject/WebApp/Scripts/special/a/b/c/file.js। তবে কোনও কারণে আচরণটি পরিবর্তিত হয়েছে এবং আমার বর্তমান কাজটি পৃথকভাবে ডিরেক্টরি তালিকাভুক্ত করা। আমি উইন্ডোজের জন্য গিটহাব ব্যবহার করছি।
ওড়াদ

1
যেমনfind MyPrject/WebApp/Scripts/special -type d -printf 'echo "*.js" >> %h/.gitignore\n git add %h/.gitignore\n' | sh
জেথিল

9

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

lib64/**/__pycache__/
lib/**/__pycache__/
*.py[cod]
.ipynb_checkpoints/
**/.ipynb_checkpoints/
.DS_Store
**/.DS_Store

0

কার্যকর করার চেষ্টা করুন git rm -r --cached MyPrject/WebApp/Scripts/special/ আপনার উল্লিখিত ডিরেক্টরিটি সম্ভবত গিট দ্বারা ক্যাশে হয়েছে এবং চিহ্নবিহীন ফাইলগুলিতে প্রদর্শিত হবে। ক্যাশে সাফ করার পরে নিশ্চিত হয়ে নিন যে এতে আপনার উল্লেখ আছে .gitignore

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