নোট করুন যে আপনার প্রয়োজন হবে না, কারণ গিট 2.5 (Q2 2015) a ' --
' যদি আপনার যুক্তিতে ওয়াইল্ডকার্ড অন্তর্ভুক্ত থাকে ( *
)
git <cmd> <revs> <pathspec>
ভুল টাইপযুক্ত পথগুলি ধরতে কমান্ড লাইন কনভেনশনকে সহায়তা করার জন্য একটি হিউরিস্টিক হ'ল কমান্ড লাইনের পরবর্তী অংশের সমস্ত নন-রেভ প্যারামিটার কার্যকারী গাছের ফাইলগুলির নাম কিনা তা নিশ্চিত করা, তবে এর অর্থ " git grep $str -- \*.c
" সর্বদা হওয়া উচিত " --
" দিয়ে বিশৃঙ্খলাবদ্ধ , কারণ কেউই এই ফাইলটি তৈরি করবে না যার নাম আক্ষরিক অর্থে অ্যাসিস্ট্রিক-ডট-দেখুন।
গিটার 2.5 ওয়াইল্ডকার্ড স্ট্রিংয়ের সাহায্যে ব্যবহারকারী সম্ভবত আমাদের একটি প্যাথস্পেক দেবে বলে ঘোষণার জন্য এই তাত্ত্বিকতা ছাড়িয়েছে ।
git checkout 'a*'
# same as
git checkout -- 'a*'
দেখুন 28fcc0b কমিট (02 মে 2015) দ্বারা গান Duy Trang ( nguyenlocduy
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট 949d167 , 19 মে 2015)
pathspec
: " --
" যখন ওয়াইল্ডকার্ড ব্যবহার করা হয় তখন প্রয়োজনীয়তা এড়িয়ে চলুন
--
কমান্ড লাইন থেকে যখন " " অভাব দেখা দিচ্ছে এবং একটি কমান্ড উভয় ঘূর্ণিত এবং পাথ গ্রহণ করতে পারে, তখন ধারণাটি হয় যদি কোনও যুক্তি যদি বর্ধিত SHA-1 এবং পাথ উভয় হিসাবে দেখা যায় তবে " --
" প্রয়োজন হয় বা গিটটি অগ্রাহ্য করতে অস্বীকার করে।
এটি বর্তমানে হিসাবে প্রয়োগ করা হয়েছে:
- (1) যদি কোনও যুক্তি পুনরায় হয়, তবে অবশ্যই এটি ওয়ার্কট্রিতে থাকতে পারে না
- (২) অন্যথায়, এটি অবশ্যই ওয়ার্কট্রিতে থাকতে হবে
- (3) অন্যথায়, "
--
" প্রয়োজনীয়।
এই নিয়মগুলি আক্ষরিক পাথের জন্য কাজ করে, তবে যখন অ-আক্ষরিক পাথস্পেক জড়িত থাকে তখন এটির প্রায়শই ব্যবহারকারীকে " --
" যুক্ত করা প্রয়োজন কারণ এটি ব্যর্থ হয় (2) এবং (1) সত্যিই খুব কমই দেখা হয় ( *.c
উদাহরণস্বরূপ, (1) " *.c
" নামে একটি রেফ থাকলে সেখানে দেখা হয় ।
এই প্যাচটি কোনও কার্যকর ( *
) ওয়াইল্ডকার্ড প্যাথস্পেক "ওয়ার্কট্রিতে বিদ্যমান" বিবেচনা করে নিয়মগুলিকে কিছুটা সংশোধন করে ।
নিয়মগুলি হয়ে:
- (1) যদি একটি আরগটি রেভ হয় তবে তা অবশ্যই ওয়ার্কট্রিতে উপস্থিত থাকতে হবে বা একটি বৈধ ওয়াইল্ডকার্ড প্যাসস্পেক নয়।
- (২) অন্যথায়, এটি হয় ওয়ার্কট্রিতে বিদ্যমান বা একটি ওয়াইল্ডকার্ড প্যাসস্পেক
- (3) অন্যথায়, "
--
" প্রয়োজনীয়।
নতুন নিয়মগুলির সাথে, " --
" যখন ওয়াইল্ডকার্ড প্যাথস্পেক জড়িত থাকে তখন বেশিরভাগ সময় প্রয়োজন হয় না।
গিট 2.26 (কিউ 12020) এর সাথে সংশোধনগুলি এবং প্যাথস্পেককে পৃথক করে বলার ব্যর্থতা যুক্তিযুক্ত করা হয়েছে যাতে ব্যাকস্ল্যাশ-পালানো গ্লোব বিশেষ অক্ষরগুলিকে "ওয়াইল্ডকার্ডস ইজ পাথস্পেক" নিয়মে গণনা না করে।
দেখুন কমিট 39e21c6 দ্বারা (25 জানুয়ারী 2020) জেফ কিং ( peff
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট 341f8a6 , 12 ফেব্রুয়ারী 2020)
verify_filename()
: "ওয়াইল্ডকার্ডগুলি হল প্যাসস্পেকস" নিয়মে ব্যাকস্ল্যাশগুলি পরিচালনা করুন handle
প্রতিবেদক দ্বারা: ডেভিড ব্রাস্ট্রিম
সাইন-অফ-বাই: জেফ কিং
প্রতিশ্রুতিবদ্ধ 28fcc0b71a ( pathspec
: " --
" ওয়াইল্ডকার্ড ব্যবহার করার সময় " " এর প্রয়োজন এড়াতে হবে, 2015-05-02 অনুমোদিত):
git rev-parse '*.c'
ডাবল ড্যাশ ছাড়া
তবে ওয়াইল্ডকার্ডগুলি যাচাই করার জন্য এটি যে নিয়মটি ব্যবহার করে তা আসলে কোনও গ্লোব বিশেষের সন্ধান করে।
এটি অত্যধিক উদার, কারণ এর অর্থ হ'ল একটি প্যাটার্ন যা " a\b
" এর মতো বাস্তবে কোনও ওয়াইল্ডকার্ড মিলছে না, এটি একটি প্যাথস্পেক হিসাবে বিবেচিত হবে।
আপনার যদি ডিস্কে এ জাতীয় কোনও ফাইল থাকে তবে সম্ভবত আপনি যা চান তা সম্ভবত।
তবে যদি আপনি এটি না করেন, ফলাফল বিভ্রান্তিকর: " there's no such path a\b
" বলার পরিবর্তে আমরা চুপচাপ এটিকে এমন একটি প্যাথস্পেক হিসাবে মেনে নেব যা খুব সম্ভবত কোনও কিছুর সাথে মেলে না (বা কমপক্ষে আপনি যা চান তার চেয়ে কম নয়)।
তেমনি, পথ অনুসন্ধান করা " a\*b
" অনুসন্ধানটি মোটেই প্রসারিত করে না; এটি কেবল একটি একক প্রবেশের সন্ধান করবে, " a*b
"।
এই প্রতিশ্রুতিটি তখনই নিয়মটিকে ট্রিগার করার --
দিকে ঠেলে দেয় যখন গ্লোব মেটাচার্যাক্টরা অনুসন্ধানটি প্রসারিত করে, অর্থাত্ এই দুটি ক্ষেত্রেই একটি ত্রুটির প্রতিবেদন করবে (অবশ্যই আপনি " " ব্যবহার করে বিশৃঙ্খলা করতে পারেন , আমরা কেবল ডিডব্লিউআইএম হিউরিস্টিক কঠোর করে দিচ্ছি)।
( ডিডব্লিউআইএম: আমি যা বলতে চাইছি তা করুন )
মনে রাখবেন যে আমরা 28fcc0b71a এ মূল বৈশিষ্ট্যটি মোটেই পরীক্ষা করে দেখিনি ।
সুতরাং এই প্যাচটি কেবল এই কোণার কেসগুলির জন্য পরীক্ষা করে না, তবে বিদ্যমান আচরণের জন্য একটি রিগ্রেশন টেস্টও যুক্ত করে।