আমি .gitignore
বাক্য গঠনটি আরও স্পষ্টভাবে বোঝার চেষ্টা করছি এবং বিশেষত https://github.com/github/gitignore gitignores হিসাবে সম্পর্কিত।
আমি দেখতে পাচ্ছি যে শীর্ষস্থানীয় স্ল্যাশ কেবলমাত্র .gitignore
ফাইলের অবস্থানের সাথে সম্পর্কিত পাথের সাথে ( http://git-scm.com/docs/gitignore থেকে ) মেলে ব্যবহার করতে ব্যবহৃত হয় :
একটি শীর্ষস্থানীয় স্ল্যাশ পথের নামের শুরুতে মেলে। উদাহরণস্বরূপ, "/*.c" "" cat-file.c "এর সাথে মেলে তবে" মোজিলা-sha1 / sha1.c "নয়।
তবে আমি যখন শীর্ষস্থানীয় স্ল্যাশ সরিয়ে ফেলব তখন কী হবে? যতদূর আমি বুঝতে পেরেছি, দুটি ক্ষেত্রে রয়েছে:
- যদি প্যাটার্নটিতে স্ল্যাশ না থাকে (বা এটি কেবল একটি পিছনের স্ল্যাশ ধারণ করে, যার অর্থ এটি একটি ডিরেক্টরিের সাথে মেলে) তবে অনুসন্ধানটি পুরো ডিরেক্টরি গাছের ভিতরেই সঞ্চালিত হয়। উদাহরণ হিসেবে বলা যায়, প্যাটার্ন
dir/
ম্যাচ হবে<root>/dir
,<root>/a/dir
,<root>/a/b/c/.../dir
, ইত্যাদি, যেখানে<root>
অবস্থান হয়.gitignore
ফাইল। - যদি প্যাটার্নটিতে একটি স্ল্যাশ রয়েছে, যা পিছনের অবস্থানে নেই (এটি শেষ অক্ষর নয়) তবে এটি কেবল
.gitignore
ফাইলের অবস্থানের সাথে সম্পর্কিত পথের সাথে মেলে ।
এই আচরণটি যাচাই করার জন্য আমি এই উদাহরণগুলি দিয়েছি:
# Directory structure:
<root>
├─ dir/
│ └─ test
├─ src/
│ ├─ dir/
│ │ └─ test
test file is there only because Git does not track empty directories.
প্রথম পরীক্ষা:
# .gitignore
dir/
# git status
nothing to commit
সুতরাং গিট উভয় dir
ডিরেক্টরি উপেক্ষা করছে । এটি কেস নম্বর 1 এর সাথে সামঞ্জস্যপূর্ণ: প্যাটার্নটির কোনও স্ল্যাশ নেই (অনুচ্ছন্নতা ব্যতীত), তাই গিট পুরো ডিরেক্টরি গাছটি পর্যবেক্ষণ করছে, প্যাটার্নের সাথে মেলে এমন সমস্ত কিছু উপেক্ষা করে।
দ্বিতীয় পরীক্ষা:
# .gitignore
/dir/
# git status
Untracked files:
src/
এখানে, গিট dir
রুট ডিরেক্টরিটির নীচে কেবল ডিরেক্টরিটি অগ্রাহ্য করছে, প্যাটার্নের শীর্ষস্থানীয় স্ল্যাশকে ধন্যবাদ।
তৃতীয় পরীক্ষা:
# .gitignore
dir/*
# git status
Untracked files:
src/
এটি কেস নম্বর 2 এর সাথে সামঞ্জস্যপূর্ণ: প্যাটার্নটির অভ্যন্তরে কিছুটা স্ল্যাশ রয়েছে, সুতরাং এটি রুট ডিরেক্টরি থেকে শুরু হওয়া একটি পথের নাম হিসাবে বিবেচিত হয়।
এখন সময় আসল প্রশ্নের জন্য। আসুন এই গিটিগনোর ফাইলটি বিবেচনা করুন : downloader/
উদাহরণস্বরূপ, তারা ডিরেক্টরিটিকে অগ্রাহ্য করবেন না, তবে তারা downloader
কি পুরো ডিরেক্টরি গাছের প্রতিটি ডিরেক্টরিকেই উপেক্ষা করে না ? এর আগে আমি গিটের কাজ সম্পর্কে যা দেখেছি সেহেতু আমি এটি ভাবতে পরিচালিত হয়েছি।
সুতরাং যদি আমি এর downloader
ভিতরে একটি ডিরেক্টরি সহ একটি কাস্টম মডিউল পেয়েছি , এটি কি অপ্রত্যাশিতভাবে পাশাপাশি ম্যাজেন্টোর মূলের নিয়মিত একটি উপেক্ষা করা হবে? এটি কিছুটা পুনর্গঠিত প্রশ্ন কারণ এটি ইতিমধ্যে আমার কাছে ঘটেছিল, বাগ খুঁজে পাওয়া সত্যিই কঠিন উত্পাদন।
সুতরাং, Magento মধ্যে .gitignore
ফাইল (যা আমি একটি উদাহরণ হিসাবে শুধুমাত্র উল্লেখ করছি, BTW) তাই তারা সঠিকভাবে রুট থেকে শুরু pathnames বিরুদ্ধে মেলানো হয় প্যাটার্নের একটি অনেক, স্ল্যাশ থাকতে, কিন্তু কিছু ক্ষেত্রে, মত আছে downloader/
বা errors/
যে , যদি আমার ভুল না হয় তবে এটি সম্ভাব্য বিপজ্জনক, এবং সম্ভবত এটি /downloader/
এবং এ পরিবর্তিত হওয়া উচিত /errors/
।
আরও সাধারণ প্রশ্ন হিসাবে, যখন আমি মূল থেকে স্পষ্টভাবে শুরু করে কোনও পথের নামটি বেছে নিতে চাই এবং স্ল্যাশযুক্ত নিদর্শনগুলির জন্য এটি ব্যবহার না করি, তখন আমি কী সর্বদা স্ল্যাশযুক্ত প্যাটার্নগুলির জন্য অগ্রণী স্ল্যাশ ব্যবহার করতে পারি (ট্রেইলিং ব্যতীত)? সবসময় স্পষ্টতার জন্য নেতৃস্থানীয় স্ল্যাশ ব্যবহার করবেন? আপনি এটি সম্পর্কে কি মনে করেন?
পড়ার জন্য আপনাকে ধন্যবাদ এবং দীর্ঘ পোস্টের জন্য দুঃখিত।