দূরবর্তী ট্যাগ হিসাবে একই নামের সাথে গিট পুশ স্থানীয় শাখা


110

আমি একটি নতুন স্থানীয় শাখা product-0.2প্রত্যন্তে ঠেলে দেওয়ার চেষ্টা করছি যেখানে ইতিমধ্যে একই নামের একটি ট্যাগ রয়েছে (তবে শাখাটি নিজেই বিদ্যমান নেই)

git push -v --tags --set-upstream origin product-0.2:product-0.2 
Pushing to https://****@github.com/mycompany/product.git
error: src refspec product-0.2 matches more than one.
error: failed to push some refs to 'https://****@github.com/mycompany/product.git'

একই সাথে:

git push origin product-0.2:/refs/heads/product-0.2 

যদিও এর চারপাশে অন্যভাবে কাজ করে, যেমন একটি শাখা তৈরি product-0.1করুন, তার উপর প্রতিশ্রুতি দিন তারপরে একটি ট্যাগ প্রয়োগ করুন product-0.1

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

আমি কীভাবে ন্যূনতম ঝলক দিয়ে আমার শাখা তৈরি করতে পারি?

আপনার ইনপুট জন্য ধন্যবাদ


1
চেষ্টা করুন refs/heads/product-0.2:refs/heads/product-0.2, অর্থাত্ শীর্ষস্থানীয় স্ল্যাশ ছাড়াই এবং স্থানীয় দিক থেকে সম্পূর্ণ রেস্পেকপ দিন।
নিটল

গিট পুশ
অরিজিনের

উত্তর:


162

নিম্নলিখিত কমান্ড কাজ করা উচিত।

git push origin refs/heads/product-0.2:refs/heads/product-0.2 

16
উত্তর গৃহীত হয়েছে, এটি হ্রাস করার উপায়। তবুও, একই জায়গাতে একই জায়গায় ট্যাগ এবং শাখা না রাখাই সহজ। কিছু সরঞ্জাম (যেমন সোর্সট্রি) এতে হোঁচট খাবে এবং আপনাকে কেবলমাত্র সমাধান হিসাবে কমান্ড লাইন দিয়ে আপনার নিজের ডিভাইসে ছেড়ে যাবে। তোমাদেরকে ধন্যবাদ!
youri

2
+1 টি। যখন আপনাকে দূরবর্তী নামগুলি ছিন্ন করতে হবে তেমনই একটি জিনিস কাজ করে:refs/remotes/remote_name/remote_branch
কেলভিন

1
অজান্তে একটি ট্যাগ মুক্তির নাম দিয়েছিলেন masterএবং আর একই নামে শাখায় ঠেলাঠেলি করতে পারেন না। git push origin refs/heads/masterকৌশলটি করেছেন (তারপরে আমি সেই ট্যাগটি মুছলাম যাতে এটি হওয়া বন্ধ হয়ে যায়)।
tresf

সর্বোত্তম অনুশীলনগুলি বাদ দিয়ে, আপনি যে শাখায় চাপ দেওয়ার চেষ্টা করছেন তা আপনি এখনও ডিফল্ট শাখাটিকে ধাক্কা দিতে অক্ষম হবেন .. আমরা কীভাবে এটি ঘিরে কাজ করতে পারি?
বাক্স্টিন

উপরের সমাধানটি যদি কাজ না করে তবে দয়া করে দূরবর্তী মাথাটি সরিয়ে দেওয়ার পরে এটি করুন। গিট পুশ অরিজিন
ডিলিট

42

আপনার শাখার সাথে কোন ট্যাগগুলি যুক্ত রয়েছে তা যাচাই করুন:

git tag

আমার ক্ষেত্রে, আমার শাখার একই নামের সাথে একটি ট্যাগ ছিল। এটি মুছে ফেলা কাজ করেছে:

git tag -d [tag-name]

1
ভাল কাজ করেছে, আমার শাখা হিসাবে একই নামের একটি ট্যাগ ছিল with
চানসভিউ

20

নাম পরিবর্তন করুন।

আপনি স্থানীয়ভাবে বা দূরবর্তীভাবে এটি করুন, কেবল নাম পরিবর্তন করুন change

একটি ট্যাগ এবং একটি শাখা মূলত গিট একই জিনিস: তারা একটি প্রতিশ্রুতিবদ্ধ একটি পয়েন্টার প্রতিনিধিত্ব করে। পার্থক্য হ'ল একটি শাখা পয়েন্টার যখন আপনি কমিট করেন তখন অগ্রসর হয়, যখন কোনও ট্যাগ স্থির থাকে।

তবে , আপনি git checkoutএকটি শাখা বা ট্যাগ হয় একটি সঞ্চালন করতে পারেন । আপনি এই সমস্ত দ্বিগুণ নাম দিয়ে কেন যুদ্ধ করবেন? ঐগুলি পরিবর্তন কর.


product-0.2.0'প্যাচ স্তর' এর জন্য শেষ অঙ্কের সাথে ট্যাগটি কল করা উচিত ছিল কিন্তু তবুও, আমরা নামকরণের কনভেনশনটি রেখেছিলাম এবং যখন ট্যাগটির আগে শাখাটি তৈরি হয়েছিল তখন আমরা অতীতে সমস্যায় পড়িনি।
youri

দলটি যদি ইতিমধ্যে শাখাটি ব্যবহার শুরু করে তবে এটির নামকরণ করা কি আর্মফুল হবে?
এসএমএস

যে সত্তার আপনি এখনও ঠেলেছেননি তার নাম পরিবর্তন করুন।
দ্যBuzzSaw

আপনি কি এই @TheBuzzSaw সম্পর্কে নিশ্চিত? কারণ স্থানীয়ভাবে আমি উভয় একই নামের সাথে থাকতে পারি, বিভিন্ন জিনিস হিসাবে।
জন জন পিচলার 14

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

15

যদি আপনি এমন কোনও ট্যাগকে ঠাট্টা করার চেষ্টা করছেন যার শাখার একই নাম রয়েছে:

git push origin tag myTag

3
ভাল কাজ স্যার! এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। সর্বদা দীর্ঘ লেজ এসও উত্তরগুলি পড়ুন
লুইস_গুইটন

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

12

আমি আজ সকালে একটি ক্যানোনিকাল সংগ্রহস্থলের দিকে ধাক্কা দেওয়ার চেষ্টা করছিলাম এবং নিম্নলিখিত ত্রুটিটি পেয়েছি:

$ git push origin master
error: src refspec master matches more than one.
error: failed to push some refs to 'ssh://user@host/srv/git/repo'

এটি ঘটেছে কারণ আমি দুর্ঘটনাক্রমে স্থানীয়ভাবে একটি মাস্টার ট্যাগ তৈরি করেছি:

$ git tag
master
tag1
tag2
tag3
tag4

একবার আমি এই ট্যাগটি স্থানীয়ভাবে মুছলাম:

git tag -d master

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


ভাল ব্যাখ্যা। লোকাল ট্যাগ মুছতে হবে। ধন্যবাদ!
শেফ ফেরাউন

5

এটি ব্যর্থ হয়েছে:

git push $origin $branch:$branch 

যদিও এটি আমার পক্ষে কাজ করেছে:

git checkout $branch
git push $origin HEAD:$branch

1

আপনি যদি সোর্স ট্রি ব্যবহার করছেন তবে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন।

  1. ট্যাগ বিভাগে শাখার ট্যাগ নামটি সন্ধান করুন
  2. ট্যাগ নাম মুছে ফেলতে ক্লিক করুন।
  3. নিশ্চিত হয়ে নিন যে আপনি "রিমোট থেকে ট্যাগগুলি সরান" এবং ঠিক আছে ক্লিক করুন check

আপনার পরিবর্তনগুলি ঠেকাতে আবার চেষ্টা করুন। এখন এই কাজ করবে।

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