গিট চেকআউট: পাথ আপডেট করা শাখাগুলি স্যুইচিংয়ের সাথে বেমানান


467

আমার সমস্যা শাখাটি স্যুইচ করার সময় মারাত্মক গিট ত্রুটির সাথে সম্পর্কিত ।

কমান্ডটি দিয়ে আমি একটি দূরবর্তী শাখা আনার চেষ্টা করি

git checkout -b local-name origin/remote-name

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

মারাত্মক: গিট চেকআউট: পাথ আপডেট করার শাখাগুলি স্যুইচিংয়ের সাথে বেমানান।
প্রতিশ্রুতি হিসাবে সমাধান করা যায় না এমন 'উত্স / দূরবর্তী-নাম' চেকআউট করার জন্য আপনি কি পরিকল্পনা করেছিলেন?

যদি আমি ম্যানুয়ালি একটি শাখা তৈরি করি এবং তারপরে দূরবর্তী শাখাটি টান করি, তবে এটি একটি নতুন ক্লোন তৈরি করে এবং শাখাটি পরীক্ষা করে দেখার মতো কাজ করে।

আমি যে ভাণ্ডার নিয়ে কাজ করি তা কেন এটি কাজ করে না?


1
এই কমান্ডের প্রথম উদাহরণের পরে কী পরিবর্তন হয়েছে (ত্রুটির বার্তাটি ট্রিগার করছে)?
ভোনসি

গিট ডিআইডি গিট ফেচ গিট আনতে গিট: //blabla.com/dir1/Project.git

উত্তর:


739

আমি বিশ্বাস করি যখন আপনি একটি দূরবর্তী শাখা চেকআউট করার চেষ্টা করছেন যা আপনার স্থানীয় গিট রেপো এখনও অবগত নয়। চেষ্টা করুন:

git remote show origin

আপনি যে দূরবর্তী শাখাটি চেকআউট করতে চান তা যদি "নতুন দূরবর্তী শাখাগুলির" অধীনে থাকে এবং "ট্র্যাকড দূরবর্তী শাখাগুলি" না হয় তবে আপনাকে প্রথমে এগুলি আনতে হবে:

git remote update
git fetch

এখন এটি কাজ করা উচিত:

git checkout -b local-name origin/remote-name

7
এটি আমার জন্য সমস্যাটি সমাধান করেছে, উপরের স্বেচ্ছাচারিত উত্তর নয়।
জেসেডেস্ক

21
সেই সংগ্রহস্থলের সমস্ত শাখা পেতে "গিট ফেচ REPOSITORY_NAME" হওয়া উচিত।
মাইক থমসন

1
অগত্যা। git fetchসমস্ত দূরবর্তী স্টোর থেকে সমস্ত শাখা পাবেন।
মাইকেল গ্রিনিচ

4
যদি অন্য কেউ এই সমস্ত বিষয়ে সম্পূর্ণ উন্মত্ততার সাথে লড়াই করে: গিট ফেচ আদি / শাখা নাম গিট আনার মতো নয় । প্রাক্তন কেবল গিট দূরবর্তী শো উত্সের মাধ্যমে দৃশ্যমান একটি কলামে প্রদর্শন করে "নতুন (পরবর্তী আনয়ন দূরবর্তী / উত্সে সঞ্চয় করবে)" এর ফলাফল দেয়।
আলেকজান্ডার কেললেট

7
আপনি যদি এমন কোনও রিমোটের জন্য এটি করার চেষ্টা করছেন যা আপনি স্পষ্টভাবে যোগ করেছেন (সুতরাং উত্স ব্যতীত অন্য কোনও কিছু ) git remote updateআপনার আনার আগে এই রিমোটটি আনার আগে আপনাকে যা করতে হবে। অন্যথায় আপনি এই জাতীয় বার্তা পান Did you intend to checkout 'upstream-repo/master' which can not be resolved as commit?দয়া করে উত্তরের সাথে এটি যুক্ত করুন এবং লোকদের একই উত্তরগুলি পড়ার ঘন্টাগুলি সংরক্ষণ করুন যা কেবলমাত্র উত্সের জন্য কাজ করে।
ব্রুনো ব্রোনোস্কি

150

বিকল্প বাক্য গঠন,

git fetch origin remote_branch_name:local_branch_name

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

13
এটি কেবলমাত্র একটি বিকল্প বাক্য গঠন নয়, যখন গিট চেকআউট-বি শাখা_নামের উত্স / শাখা_নাম কাজ করে না তখন কাজ করতে পারে
কোডারকে

1
এটি "গিট চেকআউট - ট্র্যাক অরিজিন / রিমোট-ব্রাঞ্চ" চলাকালীন আমার সমস্যাটিও ঠিক করেছে, যা মূলত ঠিক করার আগে ওপি'র মতো একই ত্রুটি দিয়েছে। ধন্যবাদ!
কাকিয়ো

1
বৈধতাযুক্ত উত্তর চালানোর পরেও আমার পক্ষে কাজ করেছেন।
AsTeR

2
হ্যাঁ, আমি সন্দেহ করি যে এখানে --depthমূল ক্লোনটির জন্য যোগ্যতা অর্জনকারী ভুল হতে পারে। আমার সাফল্য ছিল git fetch remote_branch_name:local_branch_nameতবে অন্যান্য সমস্ত পরামর্শ ব্যর্থ হয়েছিল।
জন কেল্লেহের

46

সাফল্য ছাড়াই আমি এই থ্রেডে যা পড়তে পারি তার বেশিরভাগ চেষ্টা করার পরে, আমি এইটিটি দিয়ে হোঁচট খেয়েছি: রিমোট শাখা "গিট ব্রাঞ্চ-আর" তে প্রদর্শিত হচ্ছে না

দেখা গেল যে আমার .git / কনফিগার ফাইলটি ভুল ছিল। একটি সাধারণ ফিক্স করার পরে সমস্ত শাখা প্রদর্শিত হয়েছিল।

থেকে যাচ্ছে

[remote "origin"]
    url = http://stash.server.com/scm/EX/project.git
    fetch = +refs/heads/master:refs/remotes/origin/master

প্রতি

[remote "origin"]
    url = http://stash.server.com/scm/EX/project.git
    fetch = +refs/heads/*:refs/remotes/origin/*

কৌতুকটি করেছেন


4
এটি আসলেই একটি বিজোড় কনফিগারেশন। এটি গিটকে কেবল দূরবর্তী থেকে মাস্টার শাখা আনতে বলে।
ইক্কে

3
আমি যদি এটি করতে পারি তবে আমি 10 বার এটি দিয়ে দিতাম! - এটি ক্লোনিং করার সময় নতুন
গিটটি

2
আমারও একই সমস্যা ছিল, এটি আমাকে পাগল করে দিচ্ছিল। প্রত্যন্ত শাখাগুলি কেউ দেখছেন না, দয়া করে এটি পরীক্ষা করে দেখুন !!
কার্লোস গ্রানাডোস

আপনার উত্তরের জন্য Thank
সাচা

মন = ফুঁকছে! ধন্যবাদ!
চিরঞ্জিব

12

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

url= << URL TO REPOSITORY >>
branch= << BRANCH NAME >>

git init
git remote add origin $url
git fetch origin $branch:origin/$branch
git checkout -b $branch --track origin/$branch

11

উপরের কেউই আমার পক্ষে কাজ করেনি। আমার পরিস্থিতি কিছুটা আলাদা, আমার দূরবর্তী শাখাটি মূলত নেই । তবে একটি ভিন্ন সংগ্রহস্থলে।

git remote add remoterepo GIT_URL.git
git fetch remoterepo
git checkout -b branchname remoterepo/branchname

টিপ: যদি আপনি নীচের আউটপুটে দূরবর্তী শাখাটি না দেখতে পান তবে git branch -v -aএটি পরীক্ষা করার কোনও উপায় নেই।

1.7.5.4 এ কাজ করার বিষয়টি নিশ্চিত করেছেন


আরফ, ঠিক বুঝতে পারুন ভার্চুয়ালস্ট্যাটভয়েডের একই সমাধান ছিল!
অলিভিয়ার রেফালো 20

+1 এর জন্য git branch -v -a: আমার কাছে একটি ভুলভাবে কনফিগার করা fetch = +refs/heads/*:refs/remotes/master/*রিমোট ছিল যা রিমোটকে ডাকা হলেও বলা হয়েছিল upstream
কেফলাভিচ

7

আমার জন্য যা কাজ করা হয়েছিল তা ছিল:

git fetch

যা রিমোটের সমস্ত শাখার জন্য সমস্ত যন্ত্রকে আপনার মেশিনে টান দেয়। তারপর আমি করতে পারে

git checkout <branchname>

এবং যে নিখুঁতভাবে কাজ। শীর্ষে ভোট দেওয়া উত্তরের মতো, তবে কিছুটা সহজ।


4

আমার সন্দেহ হয় যে রিমোট-নেম নামে কোনও দূরবর্তী শাখা নেই তবে আপনি অজান্তেই উত্স / দূরবর্তী নাম নামে একটি স্থানীয় শাখা তৈরি করেছেন।

আপনি কি কোনও সময়ে টাইপ করা সম্ভব:

গিট শাখার উত্স / দূরবর্তী নাম

এইভাবে স্থানীয় / স্থানীয় / রিমোট-নাম নামের একটি শাখা তৈরি করছেন? এই আদেশটি টাইপ করুন:

গিট চেকআউট উত্স / রিমোট-নাম

আপনি হয় দেখতে পাবেন:

"উত্স / দূরবর্তী নাম" শাখায় স্যুইচ করা হয়েছে

যার অর্থ এটি সত্যিই একটি ভুল-নামযুক্ত স্থানীয় শাখা, বা

দ্রষ্টব্য: "মূল / পুনর্নির্মাণ-জারিকরণ" এ সরানো যা কোনও স্থানীয় শাখা নয়
আপনি যদি এই চেকআউট থেকে একটি নতুন শাখা তৈরি করতে চান তবে আপনি এটি করতে পারেন
(এখন বা পরে) আবার চেকআউট কমান্ডের সাহায্যে -b ব্যবহার করে। উদাহরণ:
  গিট চেকআউট-বি 

যার অর্থ এটি সত্যিই একটি প্রত্যন্ত শাখা।


3

এটি খুব স্বজ্ঞাত নয় তবে এটি আমার পক্ষে ভাল কাজ করে ...

  mkdir remote.git & cd remote.git & git init
  git remote add origin $REPO
  git fetch origin $BRANCH:refs/remotes/origin/$BRANCH        

তারপরে গিট শাখা চালনা করুন - ট্র্যাক কমান্ড ...

  git branch --track $BRANCH origin/$BRANCH

2

আমার জন্য আমার একটি টাইপো ছিল এবং আমার দূরবর্তী শাখাটি ছিল না

git branch -aদূরবর্তী শাখা তালিকাবদ্ধ করতে ব্যবহার করুন


1

আপনার সমস্যাটি কি এই অন্য SO প্রশ্নের সাথে "চেকআউট সমস্যা" যুক্ত হতে পারে ?

যেমন: সম্পর্কিত একটি সমস্যা:

  • গিট এর একটি পুরানো সংস্করণ
  • একটি কৌতূহলী চেকআউট সিনট্যাক্স, যা হওয়া উচিত: এটির git checkout -b [<new_branch>] [<start_point>]সাথে [<start_point>]নতুন শাখাটি কীভাবে শুরু করা উচিত তা প্রতিশ্রুতিটির নাম উল্লেখ করে এবং 'origin/remote-name'তা নয়।
    (যেখানে git branchকোনও দূরবর্তী শাখার নাম হিসাবে একটি সূচনা পয়েন্ট সমর্থন করে)

দ্রষ্টব্য: চেকআউট.শ স্ক্রিপ্টটি যা বলে তা হ'ল:

  if test '' != "$newbranch$force$merge"
  then
    die "git checkout: updating paths is incompatible with switching branches/forcing$hint"
  fi

এটি সিনট্যাক্স গিট চেকআউট-বি এর মতো - [] [রিমোট_ব্র্যাঞ্চ_নাম] উভয়ই শাখার নাম পরিবর্তন করে নতুন শাখার নতুন সূচনা স্থানটিকে পুনরায় সেট করে যা একে অসম্পূর্ণ বলে মনে করা হয়।


সমস্যাটি সমাধানকৃত. গিট চেকআউট-বি স্থানীয় নাম রিমোট / রিমোট-শাখা আসলে কাজ করে
ইক্কে

1
মজার বিষয়, সেই আদেশটির প্রথম উদাহরণটি (ত্রুটির বার্তাটি ট্রিগার করে) এর পরে কী পরিবর্তন হয়েছে?
ভোনসি

1

এক মিলিয়ন বার আনার পরে এখনও যোগ করা রিমোটগুলি দেখা যায় নি, যদিও ব্লবগুলি পুলটিতে ছিল। সক্রিয় আউট --tags বিকল্প না দেওয়া উচিত git remote addযাই হোক না কেন কারণে। গিট আনতে রেফগুলি তৈরি করতে আপনি নিজেই এটিকে .git / কনফিগারেশন থেকে সরিয়ে ফেলতে পারেন।

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