উত্তর:
সম্পাদনা : জাকুব নরবস্কির আরও গিট-ফু রয়েছে। নিম্নলিখিত আরও সাধারণ কমান্ড নিখুঁতভাবে কাজ করে:
git describe --tags
(অথবা --tags
আপনি যদি কোনও টীকাকৃত ট্যাগটি পরীক্ষা করে দেখে থাকেন তবে tag আমার ট্যাগটি হালকা ওজনের so
মূল উত্তর নিম্নলিখিত:
git describe --exact-match --tags $(git log -n1 --pretty='%h')
আরও গিট-ফুযুক্ত কারও কাছে আরও মার্জিত সমাধান হতে পারে ...
এটি git-log
আপনার চেক আউট থেকে শুরু হওয়া লগটিকে রিপোর্ট করে এমন সত্যটি উপস্থাপন করে। %h
সংক্ষিপ্ত হ্যাশ মুদ্রণ। তারপরে git describe --exact-match --tags
ট্যাগটি খুঁজে পাওয়া যায় (লাইটওয়েট বা টীকায়িত) যা প্রতিশ্রুতির সাথে মেলে।
$()
সিনট্যাক্স উপরে অনুমান আপনি ব্যাশ বা অনুরূপ ব্যবহার করছেন।
--exact-match
আপনার মন্তব্যের আগে আমার উত্তর সেকেন্ডে যুক্ত করেছি। আপনি এটিকে সরাতে পারবেন এবং ফাজির ইনপুট থেকে এখনও ভাল তথ্য পেতে পারেন তা জেনে ভাল লাগছে।
git rev-parse HEAD
করা এর চেয়ে আরও ভাল সমাধান git log -n1 --pretty='%h'
... তবে কেন আপনি কেবল লেখেন না HEAD
(বা কিছুই git describe
হ্যান্ডের ডিফল্ট হিসাবে )?
এটি আমার পক্ষে কাজ করেছে git describe --tags --abbrev=0
বর্তমান হেডে সমস্ত ট্যাগ দেখান (বা প্রতিশ্রুতিবদ্ধ)
git tag --points-at HEAD
git describe
একটি চীনামাটির বাসন আদেশ, যা আপনার এড়ানো উচিত:
http://git-blame.blogspot.com/2013/06/checking-current-branch-programatically.html
পরিবর্তে, আমি ব্যবহার করেছি:
git name-rev --tags --name-only $(git rev-parse HEAD)
^0
ট্যাগগুলির সাথে মিলে কমিটগুলির জন্য পিছনে আউটপুট দেয় (উদাহরণস্বরূপ, ট্যাগ 1.0
এটির আউটপুটগুলির জন্য 1.0^0
)। শুধুমাত্র গিট আউটপুট থাকার কোনও উপায় আছে 1.0
, বা এর জন্য আমার কী উপকার করা উচিত?
আপনি যখন কোনও ট্যাগ পরীক্ষা করে দেখেন তখন আপনার কাছে "বিচ্ছিন্ন মাথা" বলে । সাধারণত, গিটের হেড কমিট সেই শাখার পয়েন্টার যা আপনি বর্তমানে পরীক্ষা করেছেন। তবে, যদি আপনি একটি স্থানীয় শাখা (উদাহরণস্বরূপ ট্যাগ বা একটি দূরবর্তী শাখা) ব্যতীত অন্য কিছু পরীক্ষা করে থাকেন তবে আপনার "বিচ্ছিন্ন মাথা" রয়েছে - আপনি সত্যিকার অর্থে কোনও শাখায় নেই। বিচ্ছিন্ন মাথাতে থাকার সময় আপনার কোনও কমিট করা উচিত নয়।
আপনি কোনও সম্পাদনা করতে না চাইলে ট্যাগটি পরীক্ষা করা ঠিক আছে okay আপনি যদি কেবল ফাইলের বিষয়বস্তুগুলি পরীক্ষা করে দেখেন, বা আপনি কোনও ট্যাগটি আপনার প্রকল্পটি তৈরি করতে চান তবে যতক্ষণ আপনি কোনও কমিট না করেন ততক্ষণgit checkout my_tag
ফাইলগুলির সাথে কাজ করা ঠিক আছে । আপনি যদি ফাইলগুলি সংশোধন শুরু করতে চান তবে আপনার ট্যাগের উপর ভিত্তি করে একটি শাখা তৈরি করা উচিত:
$ git checkout -b my_tag_branch my_tag
my_tag_branch
থেকে শুরু করে একটি নতুন শাখা তৈরি করবে my_tag
। এই শাখায় পরিবর্তন করা নিরাপদ।
git log --decorate
এটি আপনাকে জানিয়ে দেবে যে রেফগুলি বর্তমানে চেক করা কমিটের দিকে কী নির্দেশ করছে to
git describe
আপনি ঠিক (টীকাযুক্ত) ট্যাগে থাকলে বা<tag>-<n>-g<shortened sha-1>
না থাকলে,<n>
যেহেতু কমিটের সংখ্যা কোথায় তা কেবল ট্যাগের নাম ব্যবহার করেই দেখানো হবে<tag>
।