"পাথ আপডেট করতে এবং একই সাথে শাখায় স্যুইচ করা যায় না"


186

আমি মাঝে মাঝে checkout -bএকটি নতুন শাখা তৈরি করতে, একই সময়ে এটি পরীক্ষা করে দেখতে এবং একটি কমান্ডে ট্র্যাকিং সেটআপ করতে বিকল্পটি ব্যবহার করি ।

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

$ git checkout -b test --track origin/master
fatal: Cannot update paths and switch to branch 'test' at the same time.
Did you intend to checkout 'origin/master' which can not be resolved as commit?

গিট কেন এটি পছন্দ করে না? এটি একই রেপোতে কাজ করত।


6
ত্রুটি বার্তাটি আপনাকে বলছে যে origin/masterকোনও কমিট আইডি নয়, অর্থাত্ কোনও বৈধ দূরবর্তী শাখা নয়। এটি git branch -rআউটপুট প্রদর্শিত হবে?
টেরেক

তা হয়নি। দেখা যাচ্ছে আমি ক্লোন চলাকালীন সমস্ত দূরবর্তী শাখা পরীক্ষা করে দেখিনি।
মারকফুল

উত্তর:


199

' origin/master' যা প্রতিশ্রুতি হিসাবে সমাধান করা যায় না

অদ্ভুত: আপনার আপনার দূরবর্তীগুলি পরীক্ষা করা দরকার:

git remote -v

এবং নিশ্চিত করা হয়েছে originযে আনা হয়েছে:

git fetch origin

তারপর:

git branch -avv

(আপনি কোনও origin/masterশাখা নিয়ে এসেছেন কিনা তা দেখতে )

অবশেষে, বিভ্রান্তিরgit switch পরিবর্তে গিট 2.23+ (আগস্ট 2019) ব্যবহার করুন।git checkout

git switch -c test --track origin/master

11
আমার কমান্ডে আমার একটি টাইপ ছিল যা এই ত্রুটিটিকে ট্রিগার করেছিল; আমি আমার রিমোটটি সঠিকভাবে বানান করছিলাম না!
কিউস

2
এটি একটি নতুন শাখা ছিল এবং আমার স্থানীয় সংগ্রহস্থল এটি সম্পর্কে জানত না। আমাকে একটি করতে হয়েছিল pullএবং তারপরে এই আদেশটি কাজ করেছিল।
কোডিং_ইডিয়ট

2
এই উত্তরটি সহায়ক ছিল কারণ এটি আমাকে দেখিয়েছিল যে সত্যিই অদ্ভুত কিছু চলছে: রিমোটগুলি সঠিকভাবে সেট করা থাকে তবে নতুন দূরবর্তী শাখাটি সহজেই পাওয়া যায় না। আমি যখন কোনও পরিষ্কার ডিরেক্টরিতে রিমোটটি ক্লোন করি তখন এটি কাজ করে। আমার .gitডিরেক্টরি কি কোনওভাবে দুর্নীতিগ্রস্থ হতে পারে?
কনরাড রুডল্ফ

গিট রিমোট-ভি এই ত্রুটিটিকে মারাত্মক ফিরিয়ে দিয়েছে: একটি বৈধ অবজেক্টের নাম নয়: 'রিমোট'।
করিম সমীর

@ করিম সমীর আপনি একটি পৃথক প্রশ্ন জিজ্ঞাসা করতে পারেন (আপনার ওএস এবং গিট সংস্করণ সহ), যেমন গিট রেপোতে git remote -vকার্যকর হিসাবে কাজ করে।
ভনসি

78

এফডাব্লুআইডাব্লু: আপনার ব্রাঞ্চনামে যদি টাইপ থাকে তবে আপনি এই একই ত্রুটি পাবেন।


4
আসলে খুব ভাল লাগবে যদি কেউ এই বিষয়ে গিট বিকাশকারীদের বলার জন্য সময় নিতে পারে তবে ত্রুটির বার্তাটি খুব তথ্যপূর্ণ নয়;)
স্কোরচিও

8
হ্যাঁ, এটি আমার সমস্যা ছিল, আমার শাখার
করিম সমীর

এখানেও একই, আমি (অতিরিক্ত ) git checkout -b origin mybranchপরিবর্তে চেষ্টা করছিলামgit checkout -b mybranchorigin
গিলিয়াম রেনোল্ট

আমি আমার শাখার নামটি অনুলিপি করেছিলাম এবং শাখার নাম অনুসারে শ্বেত স্থানটি অনুসরণ করেছি যা এই ত্রুটি ঘটায়।
learningKnight

আমি orgin/my-branchপরিবর্তে চেকআউট করার চেষ্টা করছিলাম origin/my-branch। একজন মিস করেছেন iএবং আমি বুঝতে পারি যে কোনও পুরানো সহযোগী কেন যোগ দিতে অস্বীকার করছে। টাইপও আসলে সমস্যা ছিল।
ডিডিএম

55

আপনি এই ত্রুটিটি প্রসঙ্গে পেতে পারেন, উদাহরণস্বরূপ ট্র্যাভিস বিল্ড এটি যে ডিফল্টরূপে কোডটি চেক করে git clone --depth=50 --branch=master। আমার জানা মতে করার জন্য, আপনাকে নিয়ন্ত্রণ করতে পারেন --depthমাধ্যমে .travis.ymlকিন্তু --branch। যেহেতু ফলাফলটি কেবলমাত্র একটি একক শাখা দূরবর্তী দ্বারা ট্র্যাক করা হয়েছে, তাই কাঙ্ক্ষিত রিমোটের রেফগুলি ট্র্যাক করতে আপনাকে স্বাধীনভাবে রিমোটটি আপডেট করতে হবে।

আগে:

$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master

ঠিক করা:

$ git remote set-branches --add origin branch-1
$ git remote set-branches --add origin branch-2
$ git fetch

পরে:

$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/branch-1
remotes/origin/branch-2
remotes/origin/master

5
আমার জন্য সমাধান। আমি একটি অগভীর - ডেপথ = 1 ক্লোন ব্যবহার করেছি এবং শাখাগুলি স্যুইচ করার জন্য এটি আমার প্রয়োজন needed
সাওতাটাইস

1
হ্যাঁ, গভীরতার জিনিস অবশ্যই এই ত্রুটির ফলস্বরূপ! সম্ভব হলে, আমি পরামর্শ দেব যে গভীরতা বিষয়টিতে জোর দেওয়ার জন্য প্রথম কয়েকটি বাক্য সম্পাদনা করা উচিত।
ডাবসলো

19

এই সাধারণ জিনিসটি আমার পক্ষে কাজ করেছিল!

যদি এটি বলে যে এটি একই সাথে 2 টি কাজ করতে পারে না, তবে তাদের আলাদা করুন।

git branch branch_name origin/branch_name 

git checkout branch_name

আসল সমস্যাটি কী তা সন্ধান করা সহজ করে তোলে
জেড খোলা

9

আপনি যখন এই সমস্যাটিতে হোঁচট খাচ্ছেন তখন আপনি এই পদক্ষেপগুলি অনুসরণ করতে পারেন:

  1. আপনার স্থানীয় সংগ্রহস্থলের জন্য পরিচিত শাখাগুলির তালিকা করতে নিম্নলিখিত কমান্ডটি চালান।

গিট দূরবর্তী শো উত্স

যা এই ফলাফল:

 remote origin
  Fetch URL: <your_git_path>
  Push  URL: <your_git_path>
  HEAD branch: development
  Remote branches:
    development                             tracked
    Feature2                                tracked
    master                                  tracked
    refs/remotes/origin/Feature1         stale (use 'git remote prune' to remove)
  Local branches configured for 'git pull':
    Feature2     merges with remote Feature2
    development  merges with remote development
    master       merges with remote master
  Local refs configured for 'git push':
    Feature2     pushes to Feature2     (up to date)
    development  pushes to development (up to date)
    master       pushes to master      (local out of date)
  1. (আনুন ইউআরএল ইত্যাদি) বিশদটি যাচাই করার পরে, কোনও নতুন শাখা আনার জন্য এই কমান্ডটি চালান (যেমন আপনি নিজের স্থানীয় রেপোতে চেকআউট করতে চাইতে পারেন) যা রিমোটে রয়েছে তবে আপনার স্থানীয় নয়।
» git remote update

Fetching origin
From gitlab.domain.local:ProjectGroupName/ProjectName
 * [new branch]      Feature3    -> Feature3

যেমন আপনি দেখতে পাচ্ছেন নতুন শাখাটি রিমোট থেকে আনা হয়েছে।
৩. অবশেষে, এই আদেশটি দিয়ে শাখাটি চেকআউট করুন

» git checkout -b Feature3 origin/Feature3

Branch Feature3 set up to track remote branch Feature3 from origin.
Switched to a new branch 'Feature3'

রিমোট সহ শাখাটি ট্র্যাক করতে (- ট্র্যাক ব্যবহার করে ) স্পষ্ট করে গিটকে বলার দরকার নেই

উপরের কমান্ডটি স্থানীয় থেকে ব্রাঞ্চটিকে মূল থেকে দূরবর্তী শাখাটি ট্র্যাক করার জন্য সেট করবে।


4

আপনি যদি আপনার শাখায় সাদা স্থান পেয়ে থাকেন তবে এই ত্রুটিটি পাবেন।


1

আমার জন্য আমার রিমোট যুক্ত করা দরকার:

git remote -add myRemoteName('origin' in your case) remoteGitURL

তাহলে আমি আনতে পারি

git fetch myRemoteName

1

এটির ফলে আপনার স্থানীয় শাখা দূরবর্তী শাখা ট্র্যাক করে না। সাসসি যেমন বলেছিল, আপনার এই কমান্ডগুলি ব্যবহার করা দরকার:

git remote update
git fetch
git checkout -b branch_nameA origin/branch_nameB

আমি এখনই আমার সমস্যার সমাধান করেছি ....


0

প্রথমে আপনাকে Fetchরিমোটে (নির্দিষ্ট শাখা) যেতে হবে, তারপরে আপনি একটি স্থানীয় বিআর তৈরি করতে পারেন এবং আপনার কমান্ডটি (যেমন- checkoutবি এবং - ট্র্যাক সহ) ব্যবহার করে দূরবর্তী শাখার সাহায্যে এটি ট্র্যাক করতে পারেন ।


0

আপনার সাবমডিউল দির যেতে হবে এবং চালানো উচিত git status

আপনি দেখতে পাচ্ছেন প্রচুর ফাইল মুছে ফেলা হয়েছে। আপনি চালাতে পারেন

  1. git reset .

  2. git checkout .

  3. git fetch -p

  4. git rm --cached submodules // সাবমোডলস আপনার নাম

  5. git submoudle add ....


0

আপনি এই আদেশগুলি ব্যবহার করতে পারেন: গিট রিমোট আপডেট, গিট আনুন, গিট চেকআউট-বি শাখা_নামার উত্স: শাখা_নামবি

আমি মনে করি এটি আপনার স্থানীয় শাখার কারণে দূরবর্তী শাখাকে ট্র্যাক করতে পারে না

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