গিটের "আমরা একীভূত করতে পারি এমন কিছু নয়" এর ত্রুটিটি কীভাবে সমাধান করবেন


289

গিটে মাস্টারে একটি শাখা মার্জ করার সময় আমি কেবল একটি সমস্যার মুখোমুখি হয়েছি। প্রথম, আমি চালিয়ে শাখার নাম পেয়েছি git ls-remote। আসুন সেই শাখাটিকে "শাখা-নাম" বলি। আমি তখন git merge branch-nameকমান্ড দৌড়েছি এবং নিম্নলিখিত ফলাফল পেয়েছি:

fatal: branch-name - not something we can merge

আমি কীভাবে এই ত্রুটিটি সমাধান করব?

উত্তর:


356

"আমরা কী একীভূত করতে পারি এমন কিছু নয়" তে কীভাবে উত্থিত হয়? , এই ত্রুটিটি শাখার নামের একটি টাইপো থেকে উত্থিত হতে পারে কারণ আপনি একটি শাখা টানতে চেষ্টা করছেন যা অস্তিত্বহীন।

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

git checkout branch-name
git checkout master
git merge branch-name

এটি কাজ করা উচিত, তবে আপনি যদি একটি ত্রুটিপূর্ণ কথা বলে থাকেন

error: pathspec 'remote-name/branch-name' did not match any file(s) known to git.

শাখাটি পরীক্ষা করার আগে আপনাকে অবশ্যই রিমোটটি আনতে হবে (সম্ভবত, তবে এটি "উত্স" নয়):

git fetch remote-name

3
একটি নতুন রিমোট যুক্ত করার পরে আমার সাথে এটি ঘটেছিল - git fetchদূরবর্তী শাখাটি মার্জ করার আগে আমার প্রথমটি করা দরকার ছিল
জেসন

রিমোট থেকে শাখা আউট এবং চেকআউট। গিট আনুন এবং & git চেকআউট শাখার নাম
জুনি ব্রোসাস

2
আমি যখন ভুল প্রকল্পে সিডি করতাম তখন আমার সাথে এটি ঘটেছিল (অর্থাত্ এটি একটি আলাদা রেপো ছিল যা আমি
সংযোজন

1
আপনি যদি কমান্ড লাইনে একটি কাঁটাচামচ সিঙ্ক করার চেষ্টা করছেন ( help.github.com/articles/syncing-a-fork ) এই ত্রুটিটি সম্ভবত আপনি ২ য় পদক্ষেপ মিস করেছেন বলে? কোনও পদক্ষেপ 0 তালিকাভুক্ত নেই? হ্যাঁ, এ কারণেই এটি মিস করা সহজ। "আপনি নিজের কাঁটাচামচটি একটি স্ট্রিম সংগ্রহস্থলের সাথে সিঙ্ক করার আগে আপনাকে গিটারের প্রবাহের সংগ্রহস্থলের দিকে নির্দেশিত এমন একটি রিমোট কনফিগার করতে হবে।" <- এটি পদক্ষেপ 0. আপনি যদি এই পদক্ষেপটি এড়িয়ে যান তবে উপরের ত্রুটিটি পাবেন যা আপনি সম্ভবত গুগলে রেখেছিলেন এবং আপনাকে এখানে নিয়ে যাচ্ছে leading :-)
স্টিভ বন্ডস

1
Git requires local knowledge of both branches in order to merge those branches
গঙ্গাধর জেন্নু

96

এটি একটি নির্বোধ পরামর্শ, তবে নিশ্চিত করুন যে শাখার নামটিতে কোনও টাইপ নেই!


4
এতটা নির্বোধ নয়, কারণ "টাইপো" এই সত্যটি হ্রাস করতে পারে যে শাখাটি এখনও আনা হয়নি (এবং এর মাধ্যমে স্থানীয়ভাবে অজানা) .. গিটি সিভিএস বা এসভিএনের চেয়ে আলাদাভাবে কাজ করে ..
klang

2
সমস্যাটির কারণও যদি শাখার নামটিতে কমা (,) বা অ্যাডিসট্রোফস (') থাকে।
এক্সেএফেক্ট

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

71

প্রত্যন্ত উজান থেকে টান দেওয়ার সময়, git fetch --allআমার জন্য কৌশলটি করেছিলেন:

git remote add upstream [url to the original repo]
git checkout [branch to be updated]
git fetch --all
git merge upstream/[branch to be updated]

অন্যান্য ক্ষেত্রে, আমি খুঁজে পেয়েছি যে "আমরা একীভূত করতে পারি এমন কিছু নয়" ত্রুটিও ঘটবে যদি দূরবর্তী (উত্স, উজানের) শাখাটি না থাকে। এটি সম্ভবত সুস্পষ্ট বলে মনে হচ্ছে তবে আপনি নিজেকে git merge origin/developকেবল এমন একটি রেপোতে কাজ করতে দেখবেন master


5
আমি কেন গুরুত্ব সহকারে জানি না যে এই উত্তরটি উপরের মতটি কেন এত বেশি ভোটে জোটেনি। 'গিট ফেচ -ল' হ'ল কমান্ডটি যে কোনও একটি প্রত্যন্ত শাখাটি মার্জ করার আগে চালানোর জন্য সাধারণত মিস করে এবং এটি আমার জন্য সমস্যার সমাধান করে।
দয়ানন্দ গওদা

2
কারণ আনয়ন স্বয়ংক্রিয়ভাবে টানবে না এবং আপনাকে এটি ম্যানুয়ালি করতে হবে। সুতরাং একটি জুড়ি আনতে - সমস্ত & টান - সমস্ত কৌশলটি করবে।
ড্যানিয়েলপোপা

ধন্যবাদ! git remote add upstreamগুরুত্বপূর্ণ বিষয় আমি অনুপস্থিত ছিল যে এটা আমার জন্য মীমাংসিত ছিল। আমি মনে করি একটি সাধারণ ভুলটি কাঁটাচামচ ধরে নিয়েছে যা স্বয়ংক্রিয়ভাবে জানে যে এটি কোথা থেকে তৈরি হয়েছিল।
ব্রেন্ট

23

আমি এই সমস্যা ছিল। শাখাটি 'ব্যবহারকারীর নাম / মাস্টার' এর মতো দেখায় যা গিটকে বিভ্রান্ত বলে মনে হয়েছিল কারণ এটি আমার সংজ্ঞায়িত দূরবর্তী ঠিকানার মতো দেখাচ্ছে। আমার এটি ব্যবহার করার জন্য

git merge origin/username/master

পুরোপুরি ভাল কাজ করে।


4
origin/দূরবর্তী শাখার নামও আমার আগে রাখতে হয়েছিল।
AsGoodAsItGates

যদি শাখার নামটিতে ফরোয়ার্ড স্ল্যাশ /থাকে তবে আপনাকে এটি করতে হবে।
সিটিএস_এই

21

নীচের পদ্ধতিটি প্রতিবার আমার জন্য কাজ করে।

git checkout master
git pull
git checkout branch-name-to-be-merged
git pull
git checkout branch-name
git pull
git merge branch-name-to-be-merged

এটি আমার জন্য কাজ করে আপনাকে ধন্যবাদ। আমি এটিই মূলত সঠিক সমাধান: মূলত নিশ্চিত হয়ে নিন যে উত্স শাখায় এটি মার্জ করার চেষ্টা করার আগে চেক আউট হয়েছে
ডিপিএস

11

এটি হতে পারে কারণ সেই শাখাটি আপনার স্থানীয় নেই। ব্যবহার মার্জ করার আগে

git fetch origin

7

আপনি এই ত্রুটিটি পাচ্ছেন কারণ আপনি যে শাখাটি মার্জ করতে চান তা আপনার স্থানীয় সংগ্রহস্থলে নেই।

সুতরাং, প্রথমে নিম্নলিখিত কমান্ডের মাধ্যমে আপনি ব্রাশটি মাস্টার শাখায় মার্জ করতে চান তা পরীক্ষা করুন:

git checkout branch_name_to_merge

এর পরে নিম্নলিখিত কমান্ড দ্বারা এটিকে মাস্টার শাখায় একীভূত করার চেষ্টা করুন:

git merge branch_name_to_merge

2
আপনি যদি নিজের শাখার নামটির প্রতি মনোযোগ না দিয়ে থাকেন (যেমন ভুল বানান) :)
ম্যাট বোরজা

এটি আমার পক্ষে কাজ করেছে। আমি যখন গিট ট্যাবটির সাথে checkout
অ্যাটামে

7

এই ত্রুটিটি পরামর্শ দেয় যে আপনি যে শাখাটি থেকে পরিবর্তনগুলি মার্জ করতে চান (যেমন আপনার ক্ষেত্রে শাখা-নাম) আপনার স্থানীয় উপস্থিত নেই তাই আপনার শাখাটি চেক আউট করা উচিত এবং স্থানীয় পরিবর্তনগুলি আনতে হবে। আপনার মাস্টার শাখায় চেকআউট করুন এবং আনুন, তারপরে নীচের পদক্ষেপগুলি অনুসরণ করুন:

git checkout branch-name
git pull
git checkout new-branch-name
git merge branch-name

আমি বাছাই করব এবং বলব যে ত্রুটি বার্তাটি উপরের মতো কিছু প্রস্তাব দেয় বলে আমি মনে করি না :-)
ব্রায়ান অ্যাগনিউ

6

এই উত্তরটি উপরের প্রশ্নের সাথে সম্পর্কিত নয়, তবে আমি একটি অনুরূপ সমস্যার মুখোমুখি হয়েছিলাম এবং এটি কারও পক্ষে কার্যকর হবে। আমি আমার বৈশিষ্ট্য শাখাটিকে নীচের মত করে মাস্টার হিসাবে একীভূত করেছি:

$ git merge fix-load

আমি নিম্নলিখিত ত্রুটি বার্তা পেয়েছি:

মার্জ: ফিক্স-লোড - এমন কিছু নয় যা আমরা মার্জ করতে পারি

আমি সমস্ত সমাধানের উপরের দিকে তাকিয়েছিলাম, কিন্তু কোনওটিই কার্যকর হয়নি।

আমি খুঁজে পেয়েছি যে বিষয়টি আমার শাখার নামটিতে বানান ভুল ছিল (আসলে, মার্জ শাখার নামটি fix-loads)।


4
আমার জন্য, মূল সংযোজন কাজ করেছে। আপনার উদাহরণ গ্রহণ, git merge origin/fix-loadsকাজ।
রাম পাত্র

3

আমি যখন এইটি করলাম তখন আমি এই ত্রুটিটি পেয়েছি git merge BRANCH_NAME "some commit message"- আমি প্রতিশ্রুতি বার্তার জন্য -m পতাকা যুক্ত করতে ভুলে গিয়েছি, সুতরাং মনে হয়েছে যে শাখার নামটিতে মন্তব্যটি অন্তর্ভুক্ত রয়েছে।


3

আমার মতে আমি দূরবর্তী রেপো সহ আমার স্থানীয় শাখার মানচিত্রটি মিস করেছি। আমি নীচে করেছি এবং এটি ভাল কাজ করেছে।

git checkout master
git remote add origin https://github.com/yourrepo/project.git
git push -u origin master
git pull
git merge myBranch1FromMain

2

যদি রেফারেন্স যুক্ত স্ট্রিংটি অন্য গিট কমান্ড (বা অন্য কোনও শেল কমান্ড) এর দ্বারা উত্পাদিত হয় তবে নিশ্চিত হয়ে নিন যে এটির শেষে কোনও ফেরত গাড়ি নেই। স্ট্রিংটি "গিট একীভূতকরণ" এ যাওয়ার আগে আপনাকে এটিকে স্ট্রিপ করতে হবে।

মনে রাখবেন যে এটি ঘটলে এটি বেশ স্পষ্ট হয়, কারণ 2 লাইনে ত্রুটি বার্তাটি:

merge: 26d8e04b29925ea5b59cb50501ab5a14dd35f0f9
 - not something we can merge

3
আপনি যখন কোনও উত্তরকে অগ্রাহ্য করলেন দয়া করে একটি মন্তব্য সরবরাহ করুন। সম্ভবত এটির মূল পোস্টারটি সমস্যা ছিল না, তবে এটি ত্রুটি বার্তার একটি সম্ভাব্য কারণ (আমার নিজের সমস্যা হয়েছিল)।
অ্যাক্রোকেট

2

আমরা এই ত্রুটিটি পেয়েছি কারণ শাখার নামে আমাদের কমা (,) ছিল। আমরা স্থানীয় শাখাটি মুছে ফেলেছি, তারপর এটি কমা ছাড়াই একটি নতুন নামে পুনরায় চেক করেছি। আমরা এটি সফলভাবে মার্জ করতে সক্ষম হয়েছি।


ইন্ডস্কোরও সমস্যাযুক্ত বলে মনে হচ্ছে। +1
আন্ডার্স লিন্ডন

1
আমি শাখার নামগুলিতে প্রায়শই আন্ডারস্কোরগুলি ব্যবহার করি @ অ্যান্ডারস লিন্ডন
নেজলেস্কি

এবং প্রথম বন্ধনীও সমস্যাযুক্ত ছিল ... + 1
পাবলো এজেকুইল

1

উত্তরোত্তর জন্য: অ্যাক্সেফেক্টের মতো বলেছে ... আপনার কাছে যদি কোনও টাইপস পরীক্ষা না করে থাকে আপনার স্থানীয় শাখার নাম, যেমন কমা বা অ্যাডোস্ট্রোফেসের মতো হাস্যকর চরিত্র আছে কিনা তা দেখার জন্য। ঠিক এখনই আমার সাথে তা ঘটেছে।


বা আন্ডারস্কোর +1
আন্ডার্স লিন্ডন

1

আপনি যে শাখায় একত্রীকরণের চেষ্টা করছেন সেটিতে আপনি স্যুইচ করতে সক্ষম কিনা তা পরীক্ষা করে নেওয়ার পরামর্শ দিই I

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

আমি আমার স্থানীয় পরিবর্তনগুলি উপেক্ষা করেছি যাতে আমি শাখায় স্যুইচ করতে পারি (স্ট্যাশ বা প্রতিশ্রুতিও পছন্দ করা যায়)। এর পরে আমি আবার প্রাথমিক শাখায় ফিরে এসেছি এবং সংযুক্তিটি সফল হয়েছিল।


0

আমার চেষ্টা করার সময় আমার জন্য সমস্যাটি হয়েছিল:

git merge -s ours --no-commit --allow-unrelated-histories <remote name>/develop

সুতরাং আসলে আমার masterপরিবর্তে লেখা উচিত developছিল, কারণ মাস্টার ছিল সাবট্রির শাখার নাম, আমার আসল শাখা নয়।


0

এটি অদ্ভুত লাগতে পারে তবে আপনার গিট ইমেল এবং নাম সেটআপ করতে ভুলবেন না:

git config --global user.email "MY@EMAIL.COM"
git config --global user.name "FIRST_NAME LAST_NAME"

0

আমার জন্য, সমস্যাটি ছিল ডাবল উদ্ধৃতি চিহ্নগুলি মার্জ বার্তায়। সুতরাং আমি যখন ডাবল চিহ্নটি সরিয়ে ফেললাম তখন সমস্ত ম্যাজিকালি কাজ করেছিল। আমি কাউকে সাহায্য আশা করি। (আমার দূর্বল ইংরেজির জন্য দুঃখিত)


0

আমার মাস্টার সহ একটি কাজের গাছ ছিল এবং একটি অন্য শাখা দুটি পৃথক কার্য ফোল্ডারে চেক আউট করে।

PS C:\rhipheusADO\Build> git worktree list
C:/rhipheusADO/Build         7d32e6e [vyas-cr-core]
C:/rhipheusADO/Build-master  91d418c [master]

PS C:\rhipheusADO\Build> cd ..\Build-master\

PS C:\rhipheusADO\Build-master> git merge 7d32e6e #Or any other intermediary commits
Updating 91d418c..7d32e6e
Fast-forward
 Pipeline/CR-MultiPool/azure-pipelines-auc.yml | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

PS C:\rhipheusADO\Build-master> git ls-remote
From https://myorg.visualstudio.com/HelloWorldApp/_git/Build
53060bac18f9d4e7c619e5170c436e6049b63f25        HEAD
7d32e6ec76d5a5271caebc2555d5a3a84b703954        refs/heads/vyas-cr-core 

PS C:\rhipheusADO\Build-master> git merge 7d32e6ec76d5a5271caebc2555d5a3a84b703954
Already up-to-date

PS C:\rhipheusADO\Build>  git push
Total 0 (delta 0), reused 0 (delta 0)
To https://myorg.visualstudio.com/HelloWorldApp/_git/Build
   91d418c..7d32e6e  master -> master

আপনার যদি কেবল সর্বশেষতম প্রতিশ্রুতি মার্জ করতে হয়:

git merge origin/vyas-cr-core 
git push

এবং আমি সর্বদা যা করেছি তার মতোই:

git checkout master # This is needed if you're not using worktrees
git pull origin vyas-cr-core
git push

0

আপনি যে শাখাটি মার্জ করার চেষ্টা করছেন তা বর্তমানে আপনার গিট দ্বারা চিহ্নিত নাও হতে পারে তাই সম্পাদন করুন git branch এবং দেখুন যে শাখাটি আপনি মার্জ করতে চান তা যদি উপস্থিত না হয় তবে তা সম্পাদন না করে git pull এখন আপনি যদি করেন git branchতবে শাখাটি এখন দৃশ্যমান হবে, এবং এখন আপনি সঞ্চালনgit merge <BranchName>

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