সতর্কতা: এটি টীকাগুলি ট্যাগগুলির জন্য ট্যাগ বার্তাগুলি সংরক্ষণ করবে না ।
সারসংক্ষেপ
প্রতিটি ট্যাগের জন্য যা পরিবর্তন করা প্রয়োজন:
- ট্যাগটি উপস্থাপন করে প্রতিশ্রুতিবদ্ধ সময়ে ফিরে যান
- ট্যাগটি মুছুন (স্থানীয়ভাবে এবং দূরবর্তীভাবে)
- এটি আপনার "রিলিজ" গিটহাবকে এমন একটি খসড়াতে পরিণত করবে যা আপনি পরে মুছতে পারেন।
- কমিটের তারিখটিতে তার তারিখ নির্ধারণ করে এমন একটি যাদু আহরণ ব্যবহার করে একই নামযুক্ত ট্যাগটি পুনরায় যুক্ত করুন।
- গিটহাবের কাছে ফিক্সড তারিখ সহ নতুন ট্যাগগুলি পুশ করুন।
- গিটহাব এ যান, যেকোন এখন-খসড়া প্রকাশ মুছুন এবং নতুন ট্যাগগুলি থেকে নতুন রিলিজ তৈরি করুন
কোডে:
git checkout 1.0.1
git tag -d 1.0.1
git push origin :refs/tags/1.0.1
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a 1.0.1 -m"v1.0.1"
git push --tags
বিশদ
গিটে ট্যাগ করার পদ্ধতি অনুসারে :
আপনি যদি কোনও রিলিজ বা সংস্করণের বাম্প ট্যাগ করতে ভুলে যান তবে আপনি সর্বদা এটির মতো প্রতিক্রিয়াশীলভাবে ট্যাগ করতে পারেন:
git checkout SHA1_OF_PAST_COMMIT
git tag -m"Retroactively tagging version 1.5" v1.5
এবং এটি পুরোপুরি ব্যবহারযোগ্য, যদিও এটি আপনার ট্যাগগুলিকে কালানুক্রমিক ক্রমের বাইরে রাখার ফলস্বরূপ যা "সর্বশেষ" ট্যাগ সন্ধানকারী বিল্ড সিস্টেমগুলির সাথে স্ক্রু করতে পারে। তবে ভয় নেই। লিনাস সব কিছু ভেবেছিল:
git checkout SHA1_OF_PAST_COMMIT
git show --format=%aD | head -1
GIT_COMMITTER_DATE="Thu Nov 11 12:21:57 2010 -0800" git tag -a 0.9.33 -m"Retroactively tagging version 0.9.33"
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a 0.9.33 -m"Retroactively tagging version 0.9.33"
তবে, আপনি যদি ইতিমধ্যে ট্যাগটি যোগ করেছেন, আপনি git tag -f existingtag
উপরেরটি ব্যবহার করতে পারবেন না অন্যথায় গিটটি যখন আপনি মার্জ করার চেষ্টা করবেন তখন অভিযোগ করবে:
Rammy:docubot phrogz$ git push --tags
To git@github.com:Phrogz/docubot.git
! [rejected] 1.0.1 -> 1.0.1 (already exists)
error: failed to push some refs to 'git@github.com:Phrogz/docubot.git'
hint: Updates were rejected because the tag already exists in the remote.
পরিবর্তে, আপনাকে অবশ্যই স্থানীয়ভাবে ট্যাগটি সরিয়ে ফেলতে হবে:
git tag -d 1.0.1
রিমোটলি মুছে ফেলুন এটি পুশ করুন :
git push origin :refs/tags/1.0.1
গিটহাব-এ, পুনরায় লোড করুন - রিলিজটি এখন একটি "খসড়া" হিসাবে চিহ্নিত হয়েছে - এবং খসড়াটি সরান।
এখন, উপরের নির্দেশাবলীর উপর ভিত্তি করে ব্যাকটেড ট্যাগ যুক্ত করুন এবং পরিশেষে ফলাফলটি ট্যাগটি গিটহাবের দিকে চাপ দিন:
git push --tags
এবং তারপরে গিয়ে গিটহাব প্রকাশের তথ্য আবার যুক্ত করুন।
git tag -l | while read -r tag; do `git checkout $tag && git tag -d $tag && git push origin :refs/tags/$tag && GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a $tag -m"$tag"`; done; git push --tags