শিরোনামের মতো, গিটিগনোর ফাইলটিতে "বিন্দুবিহীন ফাইলগুলি" যুক্ত করা কি সম্ভব?
আমি ভাবছি এটি এই সমস্ত বিরক্তিকর এক্সটেনশনহীন ফাইলগুলির যত্ন নেবে।
শিরোনামের মতো, গিটিগনোর ফাইলটিতে "বিন্দুবিহীন ফাইলগুলি" যুক্ত করা কি সম্ভব?
আমি ভাবছি এটি এই সমস্ত বিরক্তিকর এক্সটেনশনহীন ফাইলগুলির যত্ন নেবে।
উত্তর:
আপনি অনুরূপ একটি সমন্বয় চেষ্টা করতে পারেন:
*
!/**/
!*.*
এই gitignore
বর্জনীয় বিধি (একটি অবহেলিত প্যাটার্ন ) এর কোনও এক্সটেনশানযুক্ত ফাইলগুলি বাদে সমস্ত ফাইল উপেক্ষা করা উচিত।
ম্যাড পদার্থবিদ দ্বারা নীচে উল্লিখিত হিসাবে , নিয়মটি হ'ল:
যদি সেই ফাইলটির কোনও পিতামহিত ডিরেক্টরি বাদ দেওয়া হয় তবে কোনও ফাইল পুনরায় অন্তর্ভুক্ত করা সম্ভব নয়। (*
)
(*
: নির্দিষ্ট শর্তটি যদি গিট ২.২+ এ পূরণ না হয় তবে নীচে দেখুন)
এই কারণেই !/**/
যদি আমরা ফাইলগুলি সাদা তালিকাতে রাখতে চান তবে গুরুত্বপূর্ণ (পিতা-মাতা ফোল্ডারগুলি পুনরাবৃত্তভাবে সাদা তালিকাভুক্ত করা) is
আমি একই নিয়মের মতো একই ক্ষেত্রে উল্লেখ করেছি:
জাকুব নরবস্কি যেমন মন্তব্য করেছেন , আপনি সম্ভবত সমস্ত কিছু উপেক্ষা করতে চাইবেন না এক্সটেনশনহীন ফাইল ।
আমার উপদেশ:
.gitignore
উপরে উল্লিখিত হিসাবে সম্পাদনা করুন : ইতিমধ্যে সংস্করণযুক্ত ফাইলগুলি এড়ানো হবে না (এমনকি তাদের এক্সটেনশন না থাকলেও)। অন্য সকলকে উপেক্ষা করা হবে।ভবিষ্যতের কোনও এক্সটেনশনহীন ফাইলের জন্য যা আপনি সংস্করণ করতে চান:
git add -f -- myFile
নোট করুন যে গিট 2.9.x / 2.10 (২০১10 এর মাঝামাঝি?) দিয়ে এই ফাইলটির পিতামহিত ডিরেক্টরিকে আবার অন্তর্ভুক্ত করে যদি কোনও ওয়াইল্ডকার্ড না থাকে তবে কোনও ফাইল পুনরায় অন্তর্ভুক্ত করা সম্ভব হতে পারে ।
Nguyễn Thái Ngọc Duy ( pclouds
) এই বৈশিষ্ট্যটি যুক্ত করার চেষ্টা করছেন:
তবে, যেহেতু পুনরায় অন্তর্ভুক্ত করার একটি নিয়ম ছিল:
পুনরায় অন্তর্ভুক্ত নিয়মের ডিরেক্টরি অংশটি অবশ্যই আক্ষরিক হতে হবে (অর্থাত কোনও ওয়াইল্ডকার্ড নয়)
এটি যেভাবে এখানে কাজ করবে না।
.gitignore
হবে **
এবং !**.*
। আমি জানি যে যদি তারকাচিহ্নটি সামনে স্থাপন করা হয় তবে এটি কোনও তাত্পর্যপূর্ণ হবে না, তবে শেলগুলি কীভাবে ওয়াইল্ডকার্ডগুলি পরিচালনা করে তা আরও স্পষ্ট এবং
!Makefile
। 1.9.0 এ সূক্ষ্মভাবে কাজ করার সময় আমি গিট 1.7.1 এ এই সমস্যাটি নিয়ে সমস্যার মুখোমুখি হয়েছি। আমার ক্ষেত্রে মূল ডিরেক্টরিতে একটি ফাইল যুক্ত করা ভাল কাজ করেছে, তবে উপ-ডিরেক্টরিতে একটি এক্সটেনশন সহ একটি ফাইল যুক্ত করা উপেক্ষা হিসাবে দেখানো হয়েছিল। এটি বলে মনে হয় কারণ 1.7.1 **
এখনও প্যাটার্ন সমর্থন করে নি, দেখুন এখানে !
**
গীত মধ্যে যোগ করা হয়েছিল 1.8.2
। !*/
পরিবর্তে ব্যবহার করে কোনও অসুবিধা আছে !/**/
?
*
!*/
!*.*
*
গিটকে সবকিছু উপেক্ষা করতে বলে।
!*/
তারপরে ডিরেক্টরিতে থাকা যেকোন কিছুতে আনইনগোর করে। এটি অত্যন্ত গুরুত্বপূর্ণ।
!*.*
একটি এক্সটেনশন দিয়ে সমস্ত ফাইল আনইনগার করে।
!*/
নিয়ম ব্যতীত .
নামের সাথে ডিরেক্টরিগুলি তালিকাভুক্ত হবে না এবং আপনার পছন্দসই ফাইলগুলির মধ্যে কোনও মূল ফোল্ডারের বাইরে যুক্ত করা যাবে না।
রেফারেন্সের জন্য .gitignore ডকুমেন্টেশনের এই দুটি বিভাগটি পড়ুন :
একটি alচ্ছিক উপসর্গ "!" যা প্যাটার্ন অবহেলা করে; আগের প্যাটার্ন দ্বারা বাদ দেওয়া কোনও মিলে যাওয়া ফাইল আবার অন্তর্ভুক্ত হবে। যদি সেই ফাইলটির কোনও পিতামাতাকে বাদ দেওয়া হয় তবে কোনও ফাইল পুনরায় অন্তর্ভুক্ত করা সম্ভব নয়। কার্য সম্পাদনের কারণে গিট বাদ দেওয়া ডিরেক্টরিগুলি তালিকাভুক্ত করে না, সুতরাং এতে থাকা ফাইলগুলিতে যে কোনও প্যাটার্নের কোনও প্রভাব নেই, সেগুলি নির্ধারিত যেখানেই হোক না কেন। প্রথম "এর সামনে একটি ব্যাকস্ল্যাশ (" \ ") রাখুন!" আক্ষরিক "!" দিয়ে শুরু হওয়া নিদর্শনগুলির জন্য, উদাহরণস্বরূপ, "! গুরুত্বপূর্ণ! .txt"।
যদি প্যাটার্নটি স্ল্যাশের সাথে শেষ হয় তবে এটি নীচের বর্ণনার উদ্দেশ্যে সরিয়ে ফেলা হবে তবে এটি কেবল একটি ডিরেক্টরিতে একটি মিল খুঁজে পাবে। অন্য কথায়, foo / এর নীচে একটি ডিরেক্টরি foo এবং পাথের সাথে মেলে তবে কোনও নিয়মিত ফাইল বা প্রতীকী লিংক ফুটির সাথে এটি মেলে না (গিটে প্যাথস্পেক কীভাবে সাধারণভাবে কাজ করে তার সাথে এটি সামঞ্জস্যপূর্ণ)।
আমার ফোল্ডারে *.c, *.h, *.txt, *.csv
ইত্যাদির সাথে প্রচুর ফাইল রয়েছে এক্সটেনশন এবং বাইনারি ফাইলগুলি কোনও প্রকার ছাড়াই। সুতরাং আমাকে সমস্ত ফাইল নির্বাহকারী *.c,*.h
এবং উপেক্ষা করা দরকার .gitignore
, .gitignore
উদাহরণস্বরূপ , এটি আমার পক্ষে কাজ করে :
*/* #ignore all files in each directory
!*/*.c #unignore .c files in each directory
!*/*.h #unignore .h header files in each directory
!.gitignore #unignore .gitignore
README
,LICENSE
বাCOPYING
,INSTALL
,Makefile
, ইত্যাদি তাদের যদিও আপনি সবসময় করতে জোর যোগ করতে পারেন এবং তারপর তারা ট্র্যাক করা হয়