গিটে কোনও পুরানো কমিটিকে কীভাবে ট্যাগ করবেন?


949

আমরা গিটে নতুন, এবং আমি আমাদের সংগ্রহশালার শুরুতে একটি ট্যাগ সেট করতে চাই। আমাদের প্রোডাকশন কোডটি শুরুর ভাণ্ডারের মতো, তবে আমরা তখন থেকেই কমিট করেছি। শুরুতে একটি ট্যাগ আমাদের পরিচিত, স্থিতিশীল অবস্থায় "রোল ব্যাক" উত্পাদন করতে দেয় would

সুতরাং কিভাবে একটি স্বেচ্ছাচারী, পুরানো প্রতিশ্রুতিতে একটি ট্যাগ যুক্ত?


আমি স্থানীয়ভাবে এবং একটি রিমোটে একটি পুরানো ট্যাগ মুছে ফেলার জন্য সাহায্যের জন্য এখানে এসেছি এবং অবশেষে এটি দরকারীটি
আলেকসান্দার

1
এবং ভুলে যাবেন না কীভাবে গিট ব্যবহার করে কোনও দূরবর্তী সংগ্রহস্থলে ট্যাগ ঠেকানো যায়? কারণ গিট বিশেষ কিছু না করে কোনও ট্যাগ ঠেলে দেবে না।
jww

কমিট হ্যাশ ব্যবহার করে আপনি পুরানো কমিটগুলিতে একটি ট্যাগ যুক্ত করতে পারেন। এখানে এর সিনট্যাক্সটি রয়েছে: গিট ট্যাগ -a <tagName> -m "ট্যাগ বার্তা" <কম্যান্ড হ্যাশ> আরও উন্নততর উন্নত করার জন্য, এখানে রেফারেন্সটি abhisheksharma.online/git-tags
অভিষেক শর্মা

উত্তর:


1509

উদাহরণ:

git tag -a v1.2 9fceb02 -m "Message here"

9fceb02কমিট আইডির শুরু অংশটি কোথায় ।

তারপরে আপনি ট্যাগটি ব্যবহার করে চাপতে পারেন git push origin v1.2

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

প্রো গিট বইতে ট্যাগ করার জন্য একটি ভাল অধ্যায়ও রয়েছে ।

সতর্কতা: এটি বর্তমান তারিখের সাথে ট্যাগ তৈরি করে (এবং সেই মানটি উদাহরণস্বরূপ, একটি গিটহাব প্রকাশের পৃষ্ঠায় প্রদর্শিত হবে)। আপনি যদি ট্যাগটি কমিটের তারিখের সাথে তারিখ করতে চান তবে দয়া করে অন্য উত্তরটি দেখুন


45
আপনি গিটকে ডান-ক্লিক মেনুতেও এটি করতে পারেন - যদি আপনি এইভাবে SHA1 সন্ধান করেন তবে সুবিধাজনক।
ক্যাসাবেল

62
ফেরত -aএবং -m "Message here"যন্ত্রাংশ আপনাকে একটি বার্তা যুক্ত করতে না চান তাহলে:git tag v1.2 9fceb02
devius

3
আপনি সম্পূর্ণ কমিট আইডিও ব্যবহার করতে পারেন।
j08lue

1
@ দেবীয়াস ব্যবহার -aএবং এর মধ্যে পার্থক্য কী -m। Man পৃষ্ঠা বলতে বলে মনে হয় -aযখন উহ্য হয় -mব্যবহার করা হয়।
জন স্ট্রুড

7
git push --tags origin masterস্থানীয় শাখায় সমস্ত ট্যাগ দূরবর্তী থেকে ধাক্কা হবে। git push origin <tag_name>কেবল তৈরি ট্যাগটি ধাক্কা দিতে পছন্দ করুন । পড়ুন: stackoverflow.com/a/5195913/452708 , git-scm.com/book/en/v2/Git-Basics-Tagging
অভিজিৎ

144

শুধু কোড

# Set the HEAD to the old commit that we want to tag
git checkout 9fceb02

# temporarily set the date to the date of the HEAD commit, and add the tag
GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" \
git tag -a v1.2 -m"v1.2"

# set HEAD back to whatever you want it to be
git checkout master

বিস্তারিত

@ ডকিনজারের উত্তর ট্যাগগুলি তৈরি করে যার তারিখটি বর্তমান তারিখ (যখন আপনি git tagকমান্ডটি চালিয়েছিলেন ), প্রতিশ্রুতির তারিখ নয় । জন্য Git সাহায্যের tagএকটি অধ্যায় আছে "অন Backdating ট্যাগস" যেখানে বলা আছে:

আপনি যদি অন্য কোনও ভিসিএস থেকে কিছু পরিবর্তন আমদানি করে থাকেন এবং আপনার কাজের প্রধান প্রকাশের জন্য ট্যাগ যুক্ত করতে চান তবে ট্যাগ অবজেক্টের অভ্যন্তরে এম্বেড করার জন্য তারিখটি নির্দিষ্ট করতে সক্ষম হবেন; ট্যাগ অবজেক্টে যেমন ডেটা প্রভাবিত করে, উদাহরণস্বরূপ, গিটওয়েব ইন্টারফেসে ট্যাগের ক্রম।

ভবিষ্যতের ট্যাগ অবজেক্টগুলিতে ব্যবহৃত তারিখটি নির্ধারণ করতে, পরিবেশের পরিবর্তনশীল সেট করুন GIT_COMMITTER_DATE(সম্ভাব্য মানগুলির পরবর্তী আলোচনা দেখুন; সর্বাধিক সাধারণ ফর্মটি "YYYY-MM-DD HH: MM")।

উদাহরণ স্বরূপ:

$ GIT_COMMITTER_DATE="2006-10-02 10:31" git tag -s v1.0.1

"গিটে কিভাবে ট্যাগ করবেন" পৃষ্ঠাটি আমাদের দেখায় যে আমরা হেড কমিটির সময়টি এই মাধ্যমে বের করতে পারি:

git show --format=%aD  | head -1
#=> Wed, 12 Feb 2014 12:36:47 -0700

আমরা এর মাধ্যমে একটি নির্দিষ্ট কমিটের তারিখটি বের করতে পারি:

GIT_COMMITTER_DATE="$(git show 9fceb02 --format=%aD | head -1)" \
git tag -a v1.2 9fceb02 -m "v1.2"

যাইহোক, প্রতিশ্রুতি দু'বার পুনরাবৃত্তি করার পরিবর্তে, কেবলমাত্র সেই প্রতিশ্রুতিতে শিরোনাম বদলানো এবং উভয় আদেশেই স্পষ্টভাবে এটি ব্যবহার করা সহজ বলে মনে হচ্ছে:

git checkout 9fceb02 

GIT_COMMITTER_DATE="$(git show --format=%aD | head -1)" git tag -a v1.2 -m "v1.2"

4
@ কলোনেলপ্যানিক, আপনার ইচ্ছা আমার আদেশ! github.com/lucasrangit/git-custom-commands/blob/master/…
লুকাস

আপনি যদি গিথুবকে আপনার প্রকল্পের / ট্যাগ পৃষ্ঠাগুলিতে প্রদর্শিত তারিখটি প্রকাশ এবং পরিচালনা করতে পরিচালনা করেন তবে GIT_COMMITTER_DATE সেট করা বিশেষত গুরুত্বপূর্ণ!
লেসলে

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

96

এটি করার সহজ উপায় হ'ল:

git tag v1.0.0 f4ba1fc

সঙ্গে f4ba1fcকমিট ট্যাগে আপনি চান হ্যাশ শুরুতে হচ্ছে এবং v1.0.0সংস্করণ ট্যাগ করতে চান হচ্ছে।


নিখুঁত ধন্যবাদ :)।
সালেহ এনাম শোহাগ

38

কমান্ড ব্যবহার করুন:

git tag v1.0 ec32d32

যেখানে ভি 1.0 হল ট্যাগের নাম এবং আপনি যে ট্যাগটি ট্যাগ করতে চান সেটি হল3232 ec

একবার হয়ে গেলে আপনি ট্যাগগুলি এর মাধ্যমে চাপতে পারেন:

git push origin --tags

রেফারেন্স:

গিট (পুনর্বিবেচনা নিয়ন্ত্রণ): আমি কীভাবে গিটহাবে কোনও পূর্ববর্তী কমিট পয়েন্টকে ট্যাগ করতে পারি?


35

ঠিক আছে , আপনি কেবল পারেন:

git tag -a <tag> <commit-hash>

সুতরাং আপনি যদি ট্যাগ যুক্ত করতে চান : প্রতিশ্রুতি দিতে 1.0.2 e50f795, কেবল সহজভাবে করুন:

git tag -a 1.0.2 e50f795

এছাড়াও আপনি এই জাতীয় কিছু ব্যবহার করে শেষে একটি বার্তা যুক্ত করুন-m :

git tag -a 1.0.2 e50f795 -m "my message"

সর্বোপরি, আপনাকে remoteকেবল এটি করতে চাপতে হবে:

git push origin 1.0.2 

আপনার যদি এমন অনেক ট্যাগ থাকে যা আপনি একে একে উল্লেখ করতে চান না, কেবল সহজভাবে করুন:

git push origin --tags

সমস্ত ট্যাগ একসাথে ধাক্কা ...

এছাড়াও, আমি পদক্ষেপগুলির আরও স্পষ্টতার জন্য নীচের চিত্রের পদক্ষেপগুলি তৈরি করেছি: কমিট হ্যাশ ট্যাগ তৈরি করা

তুমিও ট্যাগ dd করতে হাব বা মত সরঞ্জাম ব্যবহার SourceTree , পূর্ববর্তী পদক্ষেপ এড়াতে, আমি লগ-ইন আমার কাছে Bitbucket এই ক্ষেত্রে এবং সেখান থেকে এরকম:

  1. আপনার শাখায় যান এবং আপনি ট্যাগটি যুক্ত করতে চান এমন প্রতিশ্রুতি সন্ধান করুন এবং এটিতে ক্লিক করুন:

বিটবাকেটে আপনার প্রতিশ্রুতিবদ্ধ সন্ধান করুন

  1. ইন পৃষ্ঠা কমিট ডানে, খুঁজুন এটা বলছেন যেখানে No tagsতে ক্লিক করুন +আইকন:

এটি কোনও ট্যাগ নেই যেখানে সন্ধান করুন

  1. ট্যাগ নাম বাক্সে, আপনার ট্যাগ যুক্ত করুন:

ট্যাগ নাম যোগ করুন

  1. এখন আপনি দেখতে পাচ্ছেন যে ট্যাগটি সফলভাবে তৈরি করেছে:

এখানে চিত্র বর্ণনা লিখুন


11

এটি একটি পুরানো প্রশ্ন এবং উত্তরগুলি ইতিমধ্যে সমস্ত কাজ দিয়েছে, তবে এটির জন্য একটি নতুন বিকল্পও বিবেচনা করা যেতে পারে।

আপনি যদি আপনার গিট সংগ্রহস্থল পরিচালনা করতে উত্সট্রি ব্যবহার করে থাকেন তবে আপনি যে কোনও প্রতিশ্রুতিতে ডান ক্লিক করতে পারেন এবং এতে একটি ট্যাগ যুক্ত করতে পারেন। অন্য একটি মাউসক্লিকের সাহায্যে আপনি ট্যাগটি সরাসরি মূল শাখায় পাঠাতে পারেন।


6

অন্যের উত্তরের উপর ভিত্তি করে, এখানে একটি ওয়ান-লাইনারের সমাধান দেওয়া হয়েছে যা ট্যাগের তারিখটি এটি কখন ঘটেছিল তা নির্ধারণ করে, টীকাগুলি ট্যাগ ব্যবহার করে এবং এর প্রয়োজন নেই git checkout:

tag="v0.1.3" commit="8f33a878" bash -c 'GIT_COMMITTER_DATE="$(git show --format=%aD $commit)" git tag -a $tag -m $tag $commit'
git push --tags origin master

যেখানে tagপছন্দসই ট্যাগ স্ট্রিং এবং commitকমিট হ্যাশ সেট করা আছে।


3

উত্তর @Phrogz দ্বারা মহান, কিন্তু Windows এ কাজ করে না। পাওয়ারশেল ব্যবহার করে কমিটের আসল তারিখের সাথে কোনও পুরানো কমিটিকে কীভাবে ট্যাগ করতে হবে তা এখানে:

git checkout 9fceb02
$env:GIT_COMMITTER_DATE = git show --format=%aD | Select -First 1
git tag v1.2
git checkout master
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.