জটিল গিট শাখার নাম সমস্ত গিট কমান্ড ভেঙেছে broke


338

আমি masterনিম্নলিখিত কমান্ড দিয়ে একটি শাখা তৈরি করার চেষ্টা করছিলাম ,

git branch SSLOC-201_Implement___str__()_of_ProductSearchQuery

যখন গিট হঠাৎ সাড়া দেওয়া বন্ধ করে দিয়েছে। আমি সন্দেহ করি যে অনির্দিষ্টদের ()কোনওভাবেই দোষ দেওয়া হচ্ছে। এখন, যখনই আমি কোনও গিট কমান্ড চালানোর চেষ্টা করি, আমি একই ত্রুটি পাই:

git:176: command not found: _of_ProductSearchQuery

gitপ্রতিবার কমান্ড টাইপ করার পরে সংখ্যা বাড়ানোর পরে ।

কি ঘটেছে তা কেউ ব্যাখ্যা করতে পারেন? এবং আমি কীভাবে স্বাভাবিক অবস্থায় ফিরে যাব? আমি এই শাখাটি মুছতে চাই, তবে আমি কীভাবে এটি করতে পারি?


8
আমি অনুমান করব এটি আপনার zsh পরিবেশের সাথে সম্পর্কিত কারণ আমি কোনও খারাপ প্রতিক্রিয়া ছাড়াই আমার বাশ শেলের শাখা তৈরি করতে সক্ষম হয়েছি (লুবুন্টু ১৩.১০), তবে আমি আমার সম্পূর্ণ ভ্যানিলা জেডএসে স্যুইচ করার সময় ত্রুটিটি দেখছি
Jonathan.Brink

27
ভবিষ্যতে, উদ্ধৃতি স্টাফ যা সন্দেহজনক দেখাচ্ছে। git branch "SSLOC-201_Implement___str__()_of_ProductSearchQuery"ঠিক কাজ করে।
কিউস - মোনিকা ২৪ শে

11
সমস্যাযুক্ত চরিত্রগুলি পুরোপুরি এড়াতে @ কিউক্স আরও ভাল।
jub0bs

3
@ যুবস অবশ্যই নিশ্চিত, যদিও আমি দেখেছি কিছু সংস্থাগুলি এরকম অদ্ভুত শাখার নাম প্রয়োগ করে।
কিউস - মনিিকা

1
@ ডাইটসাইটস্পেন্সার আপনার লিঙ্কটি বাশের জন্য নির্দিষ্ট, তবে এই প্রশ্নটি zsh- নির্দিষ্ট sh সমস্যাটি আসলে ব্যাশে ঘটে না।
jub0bs

উত্তর:


617

সমস্যা

কি ঘটেছে তা কেউ ব্যাখ্যা করতে পারেন? [...] আমি এই শাখাটি মুছে ফেলতে সক্ষম হতে চাই তবে গিট আমার পক্ষে কাজ করবে না।

দৌড় দিয়ে

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

অঙ্গীকার বার্তায় অন্তর্ভুক্ত, শাখার নাম নয়।


4
এই থ্রেডের কোনও কিছুই প্যারেন্স অবৈধ নয় states গিটকে মনে হয়েছে এটি ঠিক আছে। Switched to a new branch 'abcd-()-foo'
কিউস - মনিকা 24

1
দেখতে ভাল লাগছে; এগুলি ব্যবহার করার জন্য অবশ্যই দুর্দান্ত ধারণা নয় তবে তারা প্রযুক্তিগতভাবে অবৈধ নয়।
কিউস - মোনিকা

12
কেউ যদি unsetশেল ফাংশন তথাকথিত তৈরি করে ছায়াও দেয় তবে কী ঘটে ? (এটি কি সম্ভব?)
মাত্তেও উমিলি

2
@ কোড্রাইপো হা! এটা একটা ভাল দিক. হ্যাঁ, এটি সম্ভব, এবং সেক্ষেত্রে আপনি সম্ভবত পুনরায় আরম্ভ করার চেয়ে আরও ভাল zsh
jub0bs

45
আপনি ব্যবহার করতে পারে builtin unset। যদি builtinএবং unsetউভয়ই ফাংশন দ্বারা ছায়াময় হয়ে থাকে, তবে unfunction। যদি তাও চলে যায় unhash -f,। এগুলির চারটিই যদি চলে যায় তবে শেলটি আবার চালু করুন।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.