প্রত্যন্ত শাখায় ঠেলা যায় না, শাখায় সমাধান করা যায় না


110

আমি আমার রেডিওগুলি বিটবুকিট বা গিথুব থেকে স্থানান্তরিত করেছি। আমি এই বিষয়টি মনে করি না তবে এটি কেবল আলাদা জিনিস ... কিছুক্ষণের জন্য আমার দুটি রিমোট সেট আপ হয়েছিল:

origin: bitbucket
github: github

তারপরে আমি উভয় এবং গিথুবের মূল উত্সকে সরিয়েছি:

git remote remove origin
git remote remove github
git remote add origin https://github....

বিকাশ শাখার পরীক্ষা ধাক্কা:

git push origin develop

সব কিছুই আপ টু ডেট, ঠিক আছে, ভাল

যথারীতি কিছু কাজের জন্য একটি নতুন শাখা তৈরি করুন:

git checkout -b Feature/Name

দু'একটি ফাইল আপডেট করুন। রিমোটে ধাক্কা দেওয়ার চেষ্টা করুন:

git push origin Feature/Name

এই ত্রুটির ফলাফল:

মারাত্মক: বৈশিষ্ট্য / নামটি শাখায় সমাধান করা যায় না

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

এই আদেশটি চালান:

git push --all -u

এটি আমার Feature/Nameশাখাটি গিথুবকে পেয়েছে তবে এখনও আগের মতো আচরণ দেখতে পাচ্ছে:

git push origin develop
git push origin Feature/Name

প্রথমটি কাজ করে, দ্বিতীয়টি একই ত্রুটি ছুড়ে দেয়।

আমি কেন এই ত্রুটিটি পাচ্ছি তা বুঝতে পারি না। কোন ধারনা?


1
আপনি যখন তৈরি করেছিলেন তখন আপনি কোন শাখায় ছিলেন Feature/Name? আপনি কি নিশ্চিত যে Feature/Name বিদ্যমান এবং এটি চেক আউট শাখা? সঙ্গে পরীক্ষা করুন git branch
শোওয়ার্ন

@ শ্যাওয়ার্ন - মাত্র তিনটি শাখা বিদ্যমান ছিল (স্থানীয়ভাবে এবং প্রত্যন্ত অঞ্চলে): বিকাশ, পরীক্ষা এবং মাস্টার। একবার একটি শাখা পরিষ্কার হয়ে যায় এবং বিকাশের জন্য আবার মার্জ হয়ে গেলে আমি সেগুলি স্থানীয়ভাবে মুছে ফেলি (এবং যদি প্রযোজ্য হয় তবে দূরবর্তীভাবে)। আমি নিশ্চিত সেখানে কেবল আমার তিনজন ছিল - আমি কিছুক্ষণের মধ্যে প্রকল্পটি খুলিনি এবং প্রথম কাজটি আমি করেছি তা পরীক্ষা করে নিশ্চিত করেছিলাম যে আমার কোনও শিথিল শাখা নেই।
jleach

তার মানে কি আপনি স্থানীয়ভাবে git branchযাচাই করতে দৌড়ে Feature/Nameএসেছেন? কোনও জিইউআই বা আইডিই বিশ্বাস করবেন না। এছাড়াও, আপনি মামলা সঠিক পেয়েছেন?
শোওয়ার্ন

কীভাবে git push origin Feature/Name:Feature/Name?
এলপিকেেকে

এখন আমি হতাশ হয়েছি ... নিশ্চিত না কেন এটি প্রথম স্থানে কাজ করে নি, তবে ব্যবহার করার পরে git push --all -uআমার কাছে গিথুবে নতুন শাখা রয়েছে, তবে এখনও স্থানীয় থেকে ঠেলাঠেলি করতে পারছি না, তাই না? এখানে যা ঘটেছিল তা এখানেই ... আসল শাখার নাম SQLMigration/ReportFixesএবং গিথুবে যা আছে SqlMigration/ReportFixes। সুতরাং, এখন আমি পারি git push origin SqlMigration/ReportFixes- কেন গিথুব আমার জন্য কেসিং পরিবর্তন করে? AGH।
jleach

উত্তর:


379

আমারও এই সমস্যাটি ছিল এবং এটি আমাকে ক্রেজিও চালাচ্ছিল। আমার মতো কিছু ছিল feature/nameতবে git branch -aআমাকে দেখিয়েছিল FEATURE/name। শাখাটির পুনঃনামকরণ, মুছে ফেলা এবং পুনরায় কাজ করা, কোনও কিছুই কার্যকর হয়নি। কি শেষ পর্যন্ত এটি স্থির:

ভিতরে যাও .git/refs/heads

আপনি একটি FEATUREফোল্ডার দেখতে পাবেন । এটির নামকরণ করুন feature


4
এটি আমার জন্য সঠিক উত্তর ছিল। উইন্ডোতে গিটব্যাশ ব্যবহার করছিল এবং বৈশিষ্ট্য / কিছু বৈশিষ্ট্য এবং বৈশিষ্ট্য / কিছু বৈশিষ্ট্য তৈরি করেছিল।
ডিলান ম্যাককারি

এটি সঠিক উত্তর হিসাবে চিহ্নিত করা উচিত। আমাকে সাহায্য করেছেন। ধন্যবাদ!
গুইডুডি

21
এই উত্তরের জন্য আমি তোমার কাছে বিয়ারকে ঘৃণা করি! : ডি
ভোজটা

1
বাহ, ভাল ধরা। আমাকে পুরো সময় বাঁচিয়েছে। ধন্যবাদ!
পীযূষ

2
@ পেগস - সম্পন্ন আমি মনে করি না যে এই সমস্যাটি প্রকাশিত হওয়ার অনেক পরে এই উত্তরটির অস্তিত্ব ছিল, তবে এটি জনপ্রিয় হিসাবে মনে হচ্ছে, তাই আছে।
খুলে

30

আমার নিজের পরীক্ষার এবং ওপি'র মন্তব্যের ভিত্তিতে আমি মনে করি যে এক পর্যায়ে তারা শাখার নামটি কেস করার বিষয়ে বোকা বানিয়েছে।

প্রথমত, আমি বিশ্বাস করি যে ওপি ওএস এক্স বা উইন্ডোজের মতো সংবেদনশীল অপারেটিং সিস্টেমের ক্ষেত্রে রয়েছে। তারপরে তারা এরকম কিছু করেছিল ...

$ git checkout -b SQLMigration/ReportFixes
Switched to a new branch 'SQLMigration/ReportFixes'

$ git push origin SqlMigration/ReportFixes
fatal: SqlMigration/ReportFixes cannot be resolved to branch.

কেসিং পার্থক্য নোট করুন। এছাড়াও মনে রাখবেন ত্রুটিটি যদি আপনি কেবল নামটি টাইপ করেন তবে তার থেকে খুব আলাদা।

$ git push origin SQLMigration/ReportFixme
error: src refspec SQLMigration/ReportFixme does not match any.
error: failed to push some refs to 'git@github.com:schwern/testing123.git'

কারণ গিথুব শাখার নাম সঞ্চয় করতে ফাইল সিস্টেম ব্যবহার করে, এটি খোলার চেষ্টা করে .git/refs/heads/SqlMigration/ReportFixes। কারণ ফাইলসিস্টেমটি কেস সংবেদনশীল এটি সফলভাবে খোলে .git/refs/heads/SqlMigration/ReportFixesতবে বিভ্রান্ত হয়ে যায় যখন এটি শাখার নামগুলির সাথে সংবেদনশীলতার সাথে তুলনা করার চেষ্টা করে এবং সেগুলি মেলে না।

তারা কীভাবে এমন একটি রাজ্যে প্রবেশ করলেন যেখানে স্থানীয় শাখা রয়েছে SQLMigration/ReportFixesএবং দূরবর্তী শাখা SqlMigration/ReportFixesআমি নিশ্চিত নই। আমি বিশ্বাস করি না যে গিথুব প্রত্যন্ত শাখার নাম দিয়ে গণ্ডগোল করেছে। সবচেয়ে সহজ ব্যাখ্যা হ'ল পুশ অ্যাক্সেস সহ অন্য কেউ রিমোট শাখার নাম পরিবর্তন করেছে। অন্যথায়, তারা একসময় এমন কিছু করেছিল যা টাইপ দিয়ে রিমোট তৈরি করতে সক্ষম হয়েছিল। যদি তারা তাদের শেল ইতিহাসটি পরীক্ষা করে থাকে তবে সম্ভবত history | grep -i sqlmigration/reportfixesতারা একটি কমান্ড খুঁজে পেতে সক্ষম হবেন যেখানে তারা কেসিংয়ের ভুলটি টাইপ করেছেন।


আমি যখন ওএস এক্স-এর শাখার নামগুলিতে অক্ষরের কেস পরিবর্তন করেছি তখন আমি এই সমস্যায় পড়েছিলাম them এগুলিকে আবার পরিবর্তন করে সমস্যার সমাধান হয়েছে।
স্টিভেন সি হাওয়েল

আপনার পূর্ববর্তী শাখা থাকলে এটিও ঘটতে পারে, এএম-এক্সএক্সএক্সএক্স / কিছু_বাঞ্চ বলে, এবং তারপরে আরও একটি এএম-এক্সএক্সএক্স / অন্য_ ব্রাঞ্চ তৈরি করুন, গিট স্থানীয়ভাবে পৃথক পৃথক কেসগুলিকে মঞ্জুরি দেবে এবং দু'টিকে দূরবর্তীভাবে জোড়া দিতে ব্যর্থ হবে।
টিম্পব্বেকার

হ্যাঁ ভুল মিশ্র ক্ষেত্রে চেক আউট করা সম্ভব তবে চেক ইন করা যায় না .. শুধু অগোছালো।
জাভাদবা

12

গিট আপনাকে আলাদা একটি কেসিং দিয়ে বর্তমান শাখাটি চেকআউট করতে দেবে এবং এটি রিমোটে কোনও রেফ খুঁজে পেতে ব্যর্থ হবে।

সবেমাত্র কঠিন উপায় খুঁজে পেয়েছি।


1
এটা আমার সমস্যা ছিল। আমি দ্রুত কাজ করার পরামর্শ দিচ্ছি > git branchএবং যাচাই করে দেখছি যে আপনার শাখার পাশের একটি * আছে।
অ্যান্ডি ডেঞ্জার গাগেন

আমার সাথেও এটি ঘটেছিল। @ অ্যান্ডি ড্যাঞ্জারগেইন, আপনি খুশি হলেন যে আপনি এটির পরামর্শ দিয়েছেন - আমি যে শাখায় ছিলাম তার পাশের কোনও * ছিল না, তাই আমি আবার এটি পরীক্ষা করে দেখলাম, নিম্নের ক্ষেত্রে এবার।
কগনিটি্যাক্লেভস 21

9

আমার সাথেও একই ঘটনা ঘটেছিল। আমি "ফিচার / নাম" এর মতো কিছু নামে একটি শাখা তৈরি করেছি। আমি এটি ব্যবহার করে এটি ঠেলে দেওয়ার চেষ্টা করেছি:

গিট পুশ - সেট-আপস্ট্রিম উত্স ফিচার / নাম

আমি আপনার মত একই মারাত্মক ত্রুটি পেয়েছি:

মারাত্মক: কীর্তি / নাম শাখায় সমাধান করা যায় না

এটি সমাধানের জন্য আমি একটি নতুন শাখা তৈরি করেছি কারণ আমার খুব কম ফাইলই প্রভাবিত হয়েছিল। তারপরে আমি আমার শাখাগুলি ভুলটি মুছতে তালিকাভুক্ত করেছি এবং এটি কোনও ক্যাপবিহীন প্রদর্শন করা হয়েছে:

  • কৃতিত্ব / নাম

আমি এর আগে ক্যাপগুলি ব্যবহার করেছিলাম তবে প্রথম ক্যারাক্টারে কখনও হয়নি। দেখে মনে হচ্ছে গিটটি পছন্দ করে না ...


আমার একই মামলা ছিল THX: D
abdoutelb

5

এটি কেস-সংবেদনশীল, কেবল তৈরি করা শাখা নিশ্চিত করুন এবং শাখায় ঠেলাঠেলি উভয়ই একই মূলধনে রয়েছে।

উদাহরণ:

git checkout -b "TASK-135-hello-world"

ভুল করার উপায়:

git push origin task-135-hello-world     #FATAL: task-135-hello-world cannot be resolved to branch

করার সঠিক উপায়:

git push origin TASK-135-hello-world

2

সম্ভবত আপনি গিট আনতে ভুলে গেছেন? এটি দূরবর্তী রেপো থেকে ডেটা আনার প্রয়োজন! চালানোর চেষ্টা করুনgit fetch remote/branch


2

আমার ক্ষেত্রে, আমার কাছে বড় হাতের অক্ষর সহ ব্রাঞ্চ ফোল্ডার (বা যা বলা হয়) থাকত, তারপরে আমি একটি নতুন একটি ডিফারেন্স কেসিং (ছোট হাতের অক্ষর) তৈরি করি তবে গিট আসলে মূলধনের সাথে শাখা তৈরি করে।

আমি feature-ABC/branch1আগের মতো একটি শাখা তৈরি করে ধাক্কা দিয়েছি । তারপরে আমি একটি শাখা তৈরি করেছি feature-abc/branch2(লোয়ার-কেস এবিসি লক্ষ্য করুন), এবং এটিকে ব্যবহার করে এটি রিমোটে ঠেলে দেওয়ার চেষ্টা করি git push --set-upstream origin feature-abc/branch2এবং 'শাখায় সমাধান করা যায় না' ত্রুটিটি পেয়ে যাই । সুতরাং আমি git branchএবং দেখতে পাচ্ছি যে এটি আসলে আমার feature-ABC/branch2পরিবর্তে তৈরি হয়েছিল feature-abc/branch1। আমি আবার চেকআউট git checkout feature-ABC/feature2করে feature-ABC/feature2এটিকে সমাধান করতে বড় হাতের ( ) ব্যবহার করে এটিকে চাপ দিই ।


2

আমি একই সমস্যার মুখোমুখি হয়েছি যা ভুল কেসিংয়ের সাথে শাখায় যাওয়ার কারণে ছিল। গিট আমাকে feature/Nameপরিবর্তে ভুল কেসিং দিয়ে শাখায় স্যুইচ করতে দিন feature/name। উপরে তালিকাভুক্তের চেয়ে সহজ সমাধান খুঁজে পেয়েছি:

  • 'বৈশিষ্ট্য / নাম' এ আপনার পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ
  • git checkout master (or develop)
  • git checkout feature/name <সঠিক কেসিং সহ
  • git push

2

আমি ব্যবহার দ্বারা উইন্ডোজ 10 এ এই মীমাংসিত cmd কমান্ড পরিবর্তে GitBash

এটি চরিত্রের ক্ষেত্রে এবং গিট এবং কমান্ড লাইনগুলি কীভাবে তাদের পরিচালনা করে তা নিয়ে।


1

আপনি অনুরূপ শাখা তৈরি করতে পারেন তবে বিভিন্ন সংবেদনশীল-ভিত্তিতে তৈরি করতে পারেন, তবে আপনাকে চালনা করতে হবে:

git branch -D <name-of-different-case-branch>

এবং তারপরে আবার চাপ দেওয়ার চেষ্টা করুন।


1

@ টি লে এর সামান্য পরিবর্তিত উত্তর:

আমার জন্য ফাইলগুলিতে কোনও পরিবর্তন প্রয়োজন হয়নি - আমার 'ফিচার / ...' নামে একটি শাখা ছিল এবং প্রবাহের দিকে ধাকানোর সময় আমি শিরোনামটি 'বৈশিষ্ট্য / ...' এ পরিবর্তন করেছিলাম (প্রথম বর্ণের কেসটি নীচের অক্ষরে পরিবর্তন করা হয়েছিল) )।


0

আমার ঠিক এই সমস্যাটি ছিল এবং আমার সাধারণ শাখাগুলি শুরু হয়েছিল pb-3.1-12345/namebranchতবে আমি দুর্ঘটনাক্রমে প্রথম 2 টি অক্ষরকে মূলধন দিয়েছি PB-3.1/12345/namebranch। লোয়ার কেস লেটার ব্যবহার করার জন্য শাখাটির নাম পরিবর্তন করার পরে আমি শাখাটি তৈরি করতে পারি।


0

আমার জন্য আমি শাখার নামকরণ করছিলাম

Rel4.6 / বাগ / কিছু-স্বল্প বিবরণ

আমাকে যা করতে হয়েছিল তা হল ব্যবহার করার সময়

গিট পুশ অরিজিন আর এলেক্স.এক্স / বাগ / কিছু সংক্ষিপ্ত বিবরণ

লিখতে

গিট পুশ অরিজিন r elx.x / বাগ / কিছু সংক্ষিপ্ত বিবরণ

যেহেতু আমি rel এ ছোট অক্ষর r ব্যবহার করে শাখা তৈরি করতাম।

তো, এই সমস্যাটির কারণ কী?

যখন আমি লিখিত .git/refs/headsসামগ্রীটি পেয়েছি

drwxr-xr-x  4 eslam_khoga  staff   128B Sep 22 20:22 relx.x

কিন্তু না Relx.x !

এবং এটি bugভিতরে এবং ভিতরেbug আমার শাখার নাম।

সুতরাং, গিট একই নামের সাথে আলাদা আলাদা কেস লেটার সহ একটি ডিয়ার তৈরি করার চেষ্টা করুন

তবে সিস্টেমটি সংবেদনশীল নয়।

এই কারণেই এই সমস্যা!


0

বিভিন্ন কেসিংয়ের ক্ষেত্রেও একই সমস্যা ছিল।

বিকাশের (বা মাস্টার) একটি চেকআউট করেছে তখন নামটি (ভুল নাম) পরীক্ষার মতো অন্য কিছুতে পরিবর্তন করেছে।

  • গিট চেকআউট উন্নয়ন
  • গিট শাখা -m ভুল নাম পরীক্ষা

তারপরে নামটি ডান নামটিতে পরিবর্তন করুন

  • গিট শাখা -২ পরীক্ষা ডান-নাম

তারপরে ডান-নাম শাখায় চেকআউট করুন

  • গিট চেকআউট ডান-নাম

তারপরে এটি দূরবর্তী শাখায় ঠেলাঠেলি করার কাজ করেছিল

  • গিট পুশ অরিজিন ডান-নাম

0

আমার জন্য, বিষয়টি ছিল আমার কাছে গিট ছিল এবং আমার ম্যাকোস ফাইল সিস্টেম দুটি ভিন্ন কেস সংবেদনশীলতার সাথে সেট করে। আমার ম্যাকটি এপিএফএস / ইজ কেস-সেনসিটিভ ফর্ম্যাটেড ছিল : না তবে আমি এক্সকোড ইমেজ অ্যাসেটের নামকরণের সাথে কোনও অদ্ভুত সমস্যাটি পাওয়ার চেষ্টা করে আমার গিট সেটিংসগুলি উল্টিয়েছিলাম তাই গিট কনফিগারেশন - গ্লোবাল কোর.ইনোররেস মিথ্যা । এটি পিছনে উল্টিয়ে সেটিংসটি সারিবদ্ধ করে এবং শাখাটি পুনরায় শুরু করে এবং আমাকে ধাক্কা দিয়ে ট্র্যাকের দিকে ফিরিয়ে আনল।

গিট কনফিগারেশন - গ্লোবাল কোর

ক্রেডিট: https://www.hanselman.com/blog/GitIsCasesensitiveAndYourFiles systemmayNotBeWeirdFolderMergingOnWindows.aspx


0

আমারও একই সমস্যা ছিল তবে সমাধান হয়ে গেছে। আমি বুঝতে পারি শাখার নাম কেস সেনসিটিভ। গিটহাবের প্রধান শাখা হ'ল 'মাস্টার', আমার গিটব্যাশ আদেশে এটি 'মাস্টার' Master আমি স্থানীয় সংগ্রহস্থলে মাস্টারকে মাস্টার নাম দিয়েছি এবং এটি কার্যকর হয়েছে! 😀😀


0

আমি একই ইস্যুতে দৌড়ে গিয়ে লক্ষ্য করেছি যে আমি শাখাটি পরীক্ষা করার সময় কেসিং মিশ্রিত করেছি। আমি এর branchNameপরিবর্তে চেক আউট করেছি BranchNameএবং যখন আমি রিমোটে ধাক্কা দেওয়ার চেষ্টা করেছি তখন আমি একই ত্রুটি পেয়েছি।

ঠিক করা:

git push --set-upstream origin BranchName

সঠিক নামের উপর প্রবাহ স্থাপন করে, সঠিক শাখাটি গিথুবে আপডেট করা হয়েছিল এবং আমি তখন সঠিক শাখার নামটি দিয়ে চেকআউট করতে সক্ষম হয়েছি

git checkout BranchName 

এবং এটি আপনার শেষ ধাক্কা দিয়ে আপ টু ডেট হওয়া উচিত।


-1

আপনি যদি স্থানীয় শাখায় থাকেন তবে শাখার নাম "বৈশিষ্ট্য / নাম" "বৈশিষ্ট্য / নাম" রাখতে পারেন

git -m feature/Name

আপনার যদি git pushঅন্য শাখায় একটি চেকআউট করতে সমস্যা হয় (প্রাক্তন বিকাশ) এবং নাম পরিবর্তিত শাখায় ফিরে যান

git checkout feature/Name

এবং আবার চেষ্টা করুন আপনার git push

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.