সমস্যা
কি ঘটেছে তা কেউ ব্যাখ্যা করতে পারেন? [...] আমি এই শাখাটি মুছে ফেলতে সক্ষম হতে চাই তবে গিট আমার পক্ষে কাজ করবে না।
দৌড় দিয়ে
git branch SSLOC-201_Implement___str__()_of_ProductSearchQuery
zsh এ, আপনি কোনও শাখা তৈরি করেন নি । পরিবর্তে, আপনি ঘটনাক্রমে তিন সংজ্ঞায়িত শেল ফাংশন বলা git, branchএবং SSLOC-201_Implement___str__, যা তাদের পরামিতি (যদি থাকে) যার শরীর উপেক্ষা _of_ProductSearchQuery। আপনি নিজের জন্য যাচাই করতে পারেন যে প্রকৃতপক্ষে এটি ঘটেছে, বিল্টিন zsh কমান্ডটি আহ্বান করে functionsযা বিদ্যমান সমস্ত শেল ফাংশন তালিকাভুক্ত করে:
$ functions
SSLOC-201_Implement___str__ () {
_of_ProductSearchQuery
}
branch () {
_of_ProductSearchQuery
}
git () {
_of_ProductSearchQuery
}
দুর্ভাগ্যক্রমে, অন্য দুটি শেল ফাংশন সমস্যাযুক্ত না হলেও, "গিট" নামে পরিচিত শেল ফাংশন এখন বোনা ফাইড git কমান্ডকে ছায়া দেয় !
$ which git
git () {
_of_ProductSearchQuery
}
# but the real "git" is a binary file that lives in /usr/local/bin/git (or some similar path)
অতএব, আপনি পরবর্তীকালে ত্রুটি পাবেন
command not found: _of_ProductSearchQuery
যখনই আপনি কোনো গীত কমান্ড চালানোর প্রচেষ্টা করা যেমন git log, git status, ইত্যাদি (অভিমানী, অবশ্যই, কোন কমান্ড নামক _of_ProductSearchQueryবিদ্যমান)।
সাইড নোট
[...] আমি একই ত্রুটি পেয়েছি:
git:176: command not found: _of_ProductSearchQuery
( gitপ্রতিবার আমি একটি কমান্ড টাইপ করার পরে বাড়ার পরে সংখ্যা সহ )
এই সংখ্যাটি কেবল HISTCMDএকটি পরিবেশের ভেরিয়েবলের মানটির সাথে মিলে যায়
[টি] তিনি একটি ইন্টারেক্টিভ শেলের মধ্যে ইতিহাসের ইভেন্ট নম্বরটি ব্যবহার করেন, অন্য কথায় কমান্ডের জন্য ইভেন্ট নম্বরটি $HISTCMDপড়ার কারণ হয়।
দেখুন zsh ম্যানুয়াল আরো বিস্তারিত জানার জন্য।
সমাধান
এবং আমি কীভাবে স্বাভাবিক অবস্থায় ফিরে যাব?
কেবল সমস্যাযুক্ত শেল ফাংশনটি মুছুন (এবং আপনি দু'টি দুর্ঘটনাক্রমে তৈরি করেছেন, আপনি যখন রয়েছেন):
unset -f git
unset -f branch SSLOC-201_Implement___str__
তাহলে সবকিছু ঠিকঠাক করা উচিত।
unsetছায়া থাকলে কি হবে ?!
ভাল প্রশ্ন ! আমি আপনাকে নীচে Wumpus W. Wumbley এর চমৎকার মন্তব্যে উল্লেখ করি ।
শাখা-নামকরণ টিপস
কোনও বিশেষ শেল অক্ষর এড়িয়ে চলুন
হ্যাঁ, মন্তব্যে উল্লিখিত হিসাবে, বন্ধনীগুলি গিট শাখার নামগুলিতে বৈধ অক্ষর; আপনাকে কেবল নামটি যথাযথভাবে উদ্ধৃত করতে হবে, যেমন
$ git branch 'foo()bar'
$ git branch
foo()bar
* master
$ git checkout 'foo()bar'
Switched to branch 'foo()bar'
যাইহোক, কমান্ড-লাইন আর্গুমেন্ট হিসাবে ব্যবহৃত হওয়ার পরে প্রতি একক সময় এই জাতীয় নাম উদ্ধৃত করার প্রয়োজন আপনাকে রেফারেন্স নামের মাধ্যমে প্রথম বন্ধনী রোধ করতে রাজি হবে। আরও সাধারণভাবে, আপনার (যতটা সম্ভব) শেলগুলির একটি বিশেষ অর্থ রয়েছে এমন অক্ষরগুলি এড়ানো উচিত, যাতে এটির মতো আশ্চর্যতা রোধ করা যায়।
সাধারণ শাখার নাম ব্যবহার করুন
আপনার শাখার নামগুলি যেভাবেই হোক ছোট এবং মিষ্টি রাখা উচিত। দীর্ঘ বিবরণ মত
SSLOC-201_Implement ___ Str __ (): _ of_ProductSearchQuery
অঙ্গীকার বার্তায় অন্তর্ভুক্ত, শাখার নাম নয়।