গিট ব্যবহার করে আপনি কীভাবে কোনও দূরবর্তী সংগ্রহস্থলটিতে একটি ট্যাগ ঠেলাবেন?


2215

আমি আমার ল্যাপটপে একটি দূরবর্তী গিট সংগ্রহস্থলটি ক্লোন করেছি, তারপরে আমি একটি ট্যাগ যুক্ত করতে চেয়েছিলাম তাই আমি দৌড়ে এসেছি

git tag mytag master

আমি যখন git tagআমার ল্যাপটপে চলেছি তখন ট্যাগটি mytagপ্রদর্শিত হয়। আমি তখন এটিকে দূরবর্তী সংগ্রহস্থলের দিকে ঠেলে দিতে চাই যাতে আমার সমস্ত ক্লায়েন্টের কাছে আমার এই ট্যাগ থাকে, তাই আমি চালনা করি git pushতবে আমি বার্তাটি পেয়েছি:

সবকিছু আপ টু ডেট

এবং যদি আমি আমার ডেস্কটপে গিয়ে চালনা করি git pullএবং তারপরে git tagকোনও ট্যাগ দেখানো হয় না।

আমি প্রকল্পের কোনও ফাইলের উপর একটি ছোটখাটো পরিবর্তন করার চেষ্টা করেছি, তারপরে এটি সার্ভারে চাপ দিন। এর পরে আমি সার্ভার থেকে আমার ডেস্কটপ কম্পিউটারে পরিবর্তনটি টানতে পারি, তবে আমার ডেস্কটপ কম্পিউটারে চলার সময় কোনও ট্যাগ নেই git tag

আমি কীভাবে আমার ট্যাগটিকে দূরবর্তী সংগ্রহস্থলে ঠেকাতে পারি যাতে সমস্ত ক্লায়েন্ট কম্পিউটারগুলি এটি দেখতে পারে?

উত্তর:


1084

git push --follow-tags

এটি গিট 1.8.3 এ চালু করা একটি বুদ্ধিমান বিকল্প:

git push --follow-tags

এটি উভয়ই কমিট এবং কেবল ট্যাগ যা উভয়ই পুশ করে:

  • সটীক
  • পুশ করা কমিট থেকে পৌঁছনীয় (পূর্বপুরুষ)

এটি বুদ্ধিমান কারণ:

এটি সেই কারণেই --tagsএড়ানো উচিত।

গিট 2.4 ডিফল্ট দ্বারা পতাকাটি চালু করার বিকল্পটি যুক্ত করেছে push.followTagsযা আপনি সেট করতে পারেন:

git config --global push.followTags true

16
এর জন্য ধন্যবাদ, সামগ্রীতে ধাক্কা দেওয়ার পরে ট্যাগগুলি পৃথকভাবে ঠেলে দেওয়া একসাথে সমস্ত কিছুকে ঠেলে দেওয়া অর্থপূর্ণ হয়ে ওঠে।
শেন

1
আমার পক্ষে এটি একবারেই পরিষ্কার ছিল না যে এটি "টীকাগুলি" এবং "ধাক্কায়িত কমিটগুলি থেকে পৌঁছনীয়" এর মধ্যে একটি এবং সম্পর্ক। আমি আশা করি এটি টীকাযুক্ত বা না দেওয়া হোক না কেন, সমস্তই অ্যাক্সেসযোগ্য ট্যাগগুলিকে ঠেলে দেবে। এটি একটি OR নয় তা নিশ্চিত করার জন্য সম্ভবত সম্পাদনা করুন?
গৌথির

হ্যাঁ, আমি যেমনটি করেছি, আমি আবার বিটবাকেটে ফিরে যাচ্ছি, কমান্ড-লাইন থেকে এটি দেখার সুযোগ পাওয়ার পাশাপাশি আমার কোনও ট্যাগ তালিকাও দেখতে হবে?
PositiveGuy

10
এটি আমার পক্ষে 2.5.0.0 গিটে কাজ করে না, তবে git push origin --tagsতা করে।
nnyby

3
পুশ.ফলো ট্যাগস টিপসের জন্য ধন্যবাদ। আমি বিশ্বাস করতে পারি না এটি ডি-বক্স-অফ-ডিফল্ট নয়। এটি ছাড়া, ট্যাগ করতেও বিরক্ত করবেন না, আপনি ভুলে যাবেন এবং সিঙ্ক ট্যাগগুলি থেকে বেরিয়ে আসবেন।
মুডবুম

3601

একটি একক ট্যাগ পুশ করতে :

git push origin <tag_name>

এবং নিম্নলিখিত কমান্ডটি সমস্ত ট্যাগ ঠেকানো উচিত ( প্রস্তাবিত নয় ):

git push --tags

426
আমি অন্যদের ব্যবহার না করার বা প্রশিক্ষণের পরামর্শ দিচ্ছি না git push --tagsকারণ যখন আপনার সহকর্মীরা সমস্ত ট্যাগ ঠেকানোর প্রশিক্ষণপ্রাপ্ত হন তখন খারাপ ট্যাগগুলি থেকে মুক্তি পাওয়া খুব কঠিন হতে পারে, কারণ লোকেরা যতবারই তারা চায় ততবার স্থানীয়ভাবে তারা পুরানো বাজে ট্যাগগুলিতে চাপ দিতে থাকে as একটি নতুন ট্যাগ ধাক্কা। এ কারণে, আমি প্রত্যেককেই git push origin <tag_name>এখন কাউকে ব্যবহার করার পরামর্শ দেব ।
স্কট জংউথर्थ

43
একটি সরানো ট্যাগ ঠেলাঠেলি করতে : git push origin <tag_name> --force
বব স্টেইন

38
ওয়েল @ স্কটজংউথर्थ আমি মনে করি একজন বিকাশকারী হিসাবে সতর্ক হওয়া উচিত। অন্যথায় আপনি পাশাপাশি কমান্ডগুলি মোটেও শিখিয়ে না দেওয়ার পরামর্শ দিতে পারেন।
উইলা

18
যদি আপনার ট্যাগটি দূরবর্তী শাখার মতো হয় এবং এটিতে git pushব্যর্থ হয় তবে error: src refspec <tag_name> matches more than one.আপনি এটিকে এটি git push origin tag <tag_name>
চাপতে

5
আচ্ছা @ উইল প্রশ্নটি ছিল " কোনও দূরবর্তী রেপোতে একটি ট্যাগ চাপুন ।" সুতরাং git push origin <tag_name>এই প্রশ্নের একটি আরও ভাল উত্তর। ;)
ওয়াইল্ডকার্ড

265

নির্দিষ্ট ধাক্কা, একটি ট্যাগ নিম্নলিখিত করতে git push origin tag_name


99

ট্রেভর এর উত্তরে প্রসারিত করতে, আপনি একবারে একটি একক ট্যাগ বা আপনার সমস্ত ট্যাগ ঠেকাতে পারেন।

একটি একক ট্যাগ পুশ করুন

git push <remote> <tag>

এটি প্রাসঙ্গিক ডকুমেন্টেশনের সংক্ষিপ্তসার যা এটি ব্যাখ্যা করে (ব্রেভিটির জন্য বাদ দেওয়া কিছু কমান্ড বিকল্প):

git push [[<repository> [<refspec>…]]

<refspec>...

<refspec>প্যারামিটারের ফর্ম্যাটটি হ'ল ... উত্স রেফ <src>, তার পরে একটি কোলন :, তারপরে গন্তব্য রেফ <dst>...

<dst>বলে দূরবর্তী পাশ যা সুত্র এই ধাক্কা দিয়ে আপডেট করা হয় ... তাহলে :<dst>বাদ দেওয়া হয়, যেমন একই সুত্র <src>আপডেট করা হবে ...

ট্যাগ <tag>হিসাবে একই refs/tags/<tag>:refs/tags/<tag>

আপনার সমস্ত ট্যাগ একবারে পুশ করুন

git push --tags <remote>
# Or
git push <remote> --tags

এখানে প্রাসঙ্গিক ডকুমেন্টেশনের একটি সংক্ষিপ্তসার রয়েছে (কিছু কমান্ড অপশন ব্রেভিটির জন্য বাদ দেওয়া হয়েছে):

git push [--all | --mirror | --tags] [<repository> [<refspec>…]]

--tags

refs/tagsকমান্ড লাইনে সুস্পষ্টভাবে তালিকাভুক্ত রেফস্পেকগুলি ছাড়াও সমস্ত রেফগুলি অধীনে চাপ দেওয়া হয়।


উদাহরণটি কীওয়ার্ডটি ছাড়ছে tag। যেমন git push origin tag funny-tag-1
জেমস থমাসমুন 1979

1
@ JamesThomasMoon1979 আপনার এটির দরকার নেই don't আপনি এই জাতীয় উত্সের জন্য একক ট্যাগটিকে চাপ দিন: git push origin my-tag(আমি কেবল এটি চেষ্টা করেছি!)
Andres F.

আমি আপনার 1.AndresF সম্পর্কে 1.9.1 সংস্করণটি ব্যবহার করছিলাম। ?
জেমস থমাসমুন 1979

1
@ জেমস থমাসমুন ১৯৯৯ সংস্করণ 2.10.2। এটা কি তাই?
আন্দ্রেস এফ

54

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

git push origin <tagname>

নীচের কমান্ডটি ব্যবহার করে আমরা একবারে সমস্ত ট্যাগ পুশ করতে পারি:

git push origin --tags

গিট ট্যাগিং সম্পর্কিত সম্পূর্ণ বিশদের জন্য এখানে কিছু সংস্থান রয়েছে:

http://www.cubearticle.com/articles/more/git/git-tag

http://wptheming.com/2011/04/add-remove-github-tags



49

আপনি কেবল git push --tagsকমান্ড দ্বারা সমস্ত স্থানীয় ট্যাগ ঠেলাতে পারেন ।

$ git tag                         # see tag lists
$ git push origin <tag-name>      # push a single tag
$ git push --tags                 # push all local tags 

15

আমি git push <remote-name> tag <tag-name>একটি ট্যাগ চাপছি তা নিশ্চিত করতে আমি ব্যবহার করছি। আমি এটা পছন্দ ব্যবহার করুন: git push origin tag v1.0.1। এই নিদর্শনটি ডকুমেন্টেশনের উপর ভিত্তি করে ( man git-push):

OPTIONS
   ...
   <refspec>...
       ...
       tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>.

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