" গিট: এ উল্লিখিত হিসাবে : কীভাবে আমি বিশ্বব্যাপী প্যাটার্নের সাথে মেলে এমন ডিরেক্টরি সাবট্রিগুলিতে আমি পুনরাবৃত্তভাবে সমস্ত ফাইল যুক্ত করব? ", আপনি যদি সঠিকভাবে পালাতে বা আপনার প্যাথস্পেক গ্লোব্বিংয়ের (যেমন '*.java'
) উদ্ধৃতি দেন , তবে হ্যাঁ, গিট অ্যাড'*.java'
গিট 2.13 (কিউ 2 2017) ইন্টারেক্টিভ অ্যাডের জন্য এটি উন্নত করে:
দেখুন কমিট 7288e12 (14 মার্চ 2017) দ্বারা জেফ কিং ( peff
) ।
(দ্বারা একীভূত junio সি Hamano - gitster
- মধ্যে কমিট 153e0d7 , 17 মার্চ 2017)
add --interactive
: এর সাথে প্যাথস্পেকগুলি প্রসারিত করবেন না ls-files
আমরা যখন পরিবর্তিত ফাইলগুলির তালিকা পেতে চাই, আমরা প্রথমে " ls-files
" ব্যবহারকারীর দ্বারা সরবরাহিত কোনও প্যাথস্পেকগুলি প্রসারিত করি এবং তারপরে " diff-index
" এবং " diff-files
" এর সাথে যুক্ত পাথের ফলস্বরূপ তালিকাটি ফিড করি ।
যদি আপনার পাথস্পেকটি একটি বিশাল সংখ্যক পাথের মধ্যে প্রসারিত হয় তবে আপনি দুটি সমস্যার মধ্যে একটিতে দৌড়াতে পারেন:
ওএস আর্গুমেন্ট তালিকার আকার সম্পর্কে অভিযোগ করতে পারে এবং চালাতে অস্বীকার করে। উদাহরণ স্বরূপ:
$ (ulimit -s 128 && git add -p drivers)
Can't exec "git": Argument list too long at .../git-add--interactive line 177.
Died at .../git-add--interactive line 177.
এটি linux.git
সংগ্রহস্থলটিতে রয়েছে, যার "ড্রাইভার" ডিরেক্টরিতে প্রায় 20K ফাইল রয়েছে (তাদের মধ্যে কোনওটিই এই ক্ষেত্রে সংশোধিত হয়নি)। ulimit -s
লিনাক্সটিতে এমন বিশাল পথের জন্য এমনকি " " সমস্যাটি দেখানোর জন্য কৌশলটি প্রয়োজনীয়।
অন্যান্য অপারেটিং সিস্টেমে অনেক ছোট সীমা থাকে (উদাহরণস্বরূপ, ওএস এক্স-তে কেবল 5K ফাইলের সাথে একটি আসল ওয়ার্ল্ড কেস দেখা যায়)।
এমনকি যখন এটি কাজ করে, এটি সত্যই ধীর। পাথস্পেক কোড বিপুল সংখ্যক পাথের জন্য অনুকূলিত নয়। এখানে উলিমিট ছাড়া একই ঘটনা:
$ time git add -p drivers
No changes.
real 0m16.559s
user 0m53.140s
sys 0m0.220s
আমরা এটিকে ls-files
পুরোপুরি এড়িয়ে যাওয়া , এবং কেবলমাত্র পৃথক কমান্ডগুলিতে মূল প্যাথস্পেকগুলি খাওয়ানোর মাধ্যমে এটি উন্নত করতে পারি ।
Icallyতিহাসিকভাবে " diff-index
" দ্বারা সমর্থিত প্যাথস্পেক ভাষা দুর্বল ছিল, তবে এখন আর তা হয় না।