গিটে সম্পূর্ণ বার্তা সহ সমস্ত ট্যাগ কীভাবে তালিকাভুক্ত করবেন?


359

আমি গিটটি সম্পূর্ণ টিকাশী বা প্রতিশ্রুতিবদ্ধ বার্তা সহ সমস্ত ট্যাগের তালিকা করতে চাই। এরকম কিছু কাছাকাছি:

git tag -n5

এটি ঠিক যা করতে চাই তা না করে তা কেবল ট্যাগ বার্তার প্রথম 5 টি লাইন পর্যন্ত প্রদর্শিত হবে।

আমি অনুমান করি যে আমি কেবল খুব বড় সংখ্যক ব্যবহার করতে পারি। আমি এখানে সর্বোচ্চ সংখ্যাটি কী ব্যবহার করতে পারি? এটি কি প্রতিটি কম্পিউটারে একই?

আপডেট : আমার এ সম্পর্কে চিন্তাভাবনা করার জন্য অনেক সময় ছিল এবং এখন আমি মনে করি যে প্রতিটি বার্তাটির কিছু অসাধারণ দীর্ঘ হলে আমি অগত্যা প্রয়োজনীয়তাটি দেখাতে চাই না। আমার আসলে কোনও বিশেষ প্রয়োজন ছিল না যার জন্য আমাকে বিশাল বার্তাগুলি দেখার দরকার ছিল (ট্যাগ ম্যাসেজ সহ আমি যে সমস্ত কিছু লিখি তাতে দীর্ঘায়িত হওয়া আমার নিজস্ব প্রবণতা ব্যতীত)। আমি কেবল এই ধারণাটি পছন্দ করি নি যে এটি অগত্যা আমাকে পুরো বার্তাটি প্রদর্শন করবে না, কারণ এটি আমার কাছে মনে হয়েছিল যে এটি আমার কাছ থেকে তথ্য গোপন করছে। তবে অতিরিক্ত তথ্যও খারাপ জিনিস হতে পারে।


62
git tag -nআমার জন্য এটি করেছিলেন
মার্টিন বার্গার

11
git tag -nম্যানপেজ অনুযায়ী কেবল টীকাটির প্রথম লাইনটি মুদ্রণ করে।
পল দাম

@ আইএনটিপনার, সম্মত, -l ট্যাগটি নির্দিষ্ট প্যাটার্ন সহ ট্যাগগুলি তালিকা করার জন্য ব্যবহৃত হয়। উত্তর সম্পাদনা করা হচ্ছে।
জুবায়ের

উত্তর:


348

এটি ব্যবহার করে এটি প্রতিটি ট্যাগের জন্য টীকা এবং 9 টি বার্তার বার্তার পাশাপাশি সমস্ত ট্যাগ তালিকাভুক্ত করবে:

git tag -n9

ব্যবহার করতে পারেন

git tag -l -n9

যদি নির্দিষ্ট ট্যাগগুলি তালিকাভুক্ত হয়:

git tag -l -n9 v3.*

(যেমন, উপরের কমান্ডটি কেবল "v3" দিয়ে শুরু ট্যাগগুলি প্রদর্শন করবে)

-l, --list প্রদত্ত প্যাটার্নের সাথে মেলে এমন নামের সাথে ট্যাগগুলি তালিকাবদ্ধ করুন (বা যদি কোনও প্যাটার্ন দেওয়া না হয় তবে সমস্ত)। আর্গুমেন্ট ব্যতীত "গিট ট্যাগ" চালানো সমস্ত ট্যাগকেও তালিকাবদ্ধ করে। প্যাটার্নটি হ'ল শেল ওয়াইল্ডকার্ড (অর্থাত্, fnmatch (3) ব্যবহার করে মিলিত)। একাধিক নিদর্শন দেওয়া যেতে পারে; যদি তাদের কোনওটির সাথে মেলে, ট্যাগটি দেখানো হবে।


6
এটি প্রতিটি টিকাশনের প্রথম লাইনটি মুদ্রণ করবে।
পল দাম

3
@ পল মূল্য: কেবলমাত্র আপনার কাছে একটি টিকা আছে, অন্যথায় এটি প্রতিশ্রুতি বার্তা প্রিন্ট করে। এটি উত্তর নয় সম্মত হন ।
সিরো সান্তিলি 郝海东 冠状 病 六四 事件 法轮功

3
ডকুমেন্টেশন অনুসারে -lবিকল্পটি কোনও প্যাটার্নে ফিল্টার করা। আমি এখানে দেখছি না যে এটি কিভাবে সহায়ক হবে। আমি কিছু অনুপস্থিত করছি?
এখনও_ড্রিমিং_1

2
@ আইএনটিপি হ্যাঁ, এটি -lএখানে পুরোপুরি অতিরিক্ত অতিরিক্ত
ল্যাম্বার্ট

1
@ পি.মায়ারনোর এই প্রশ্নটি যা জিজ্ঞাসা করছে তার থেকে বেশি কিছু করার জন্য আপনাকে অবশ্যই গিটের একটি অদ্ভুত সংস্করণ ব্যবহার করতে হবে বা অতিরিক্ত যুক্তি দিয়ে যেতে হবে। তবে এটি জেনে রাখা ভাল যে নির্দিষ্ট পরিস্থিতিতে জন্য -l প্রয়োজন।
এখনও_ড্রিমিং_1

119
git tag -n99

স্বল্প ও মধুর. এটি প্রতিটি ট্যাগ টীকা / কমিট বার্তা থেকে 99 টি লাইন তালিকাভুক্ত করবে। গিট ট্যাগের জন্য অফিসিয়াল ডকুমেন্টেশনের লিঙ্ক এখানে

আমি এখন মনে করি যে প্রতিটি ট্যাগ প্রতি 99 লাইন দেখানোর সীমাবদ্ধতা আসলে বেশিরভাগ সময় হিসাবে ভাল জিনিস, যদি কোনও একক ট্যাগের জন্য যদি সত্যিই 99 টিরও বেশি লাইন থাকে তবে আপনি বাকী সমস্ত অংশ দেখতে চান না আপনি কি লাইন করবেন? আপনি যদি প্রতি ট্যাগে 99 টিরও বেশি লাইন দেখতে চান না, আপনি সর্বদা এটি আরও বড় সংখ্যায় বাড়িয়ে দিতে পারেন।

আমি বোঝাতে চাইছি, বিশাল ট্যাগ বার্তাগুলি দেখতে একটি নির্দিষ্ট পরিস্থিতি বা কারণ থাকতে পারে বলে মনে করি, তবে আপনি কোন বারে পুরো বার্তাটি দেখতে চান না ? যখন এটির চেয়ে বেশি 999 লাইন থাকবে? 10,000? 1,000,000? আমার বক্তব্যটি হ'ল, আপনি সাধারণত কয়টি লাইন দেখতে পাবেন তার ক্যাপ রাখার অর্থটি বোধ হয় এবং এই সংখ্যাটি আপনাকে সেট করতে দেয়।

যেহেতু আপনার ট্যাগগুলি দেখার সময় আপনি সাধারণত যা দেখতে চান তার পক্ষে আমি একটি যুক্তি দিচ্ছি, সুতরাং সম্ভবত এটির একটি নাম (নীচে আইলিয়ান ওনফ্রেইর মন্তব্য থেকে) হিসাবে সেট করা বোধগম্য হবে:

git config --global alias.tags 'tag -n99'

মানে, আপনি git tag -n99নিজের ট্যাগগুলি কি দেখতে চান প্রতিবার আপনি টাইপ করতে চান না? একবার উপনামটি কনফিগার হয়ে গেলে, আপনি যখনই নিজের ট্যাগগুলি দেখতে চান, আপনি কেবল git tagsআপনার টার্মিনালটিতে টাইপ করবেন । ব্যক্তিগতভাবে, আমি এইগুলির চেয়ে জিনিসগুলি আরও একধাপ এগিয়ে নিয়ে যেতে পছন্দ করি এবং আমার সাধারণভাবে ব্যবহৃত সমস্ত কমান্ডের জন্য আরও সংক্ষেপিত বাশ এলিয়াসগুলি তৈরি করতে পছন্দ করি। এই উদ্দেশ্যে, আপনি আপনার .bashrc ফাইলটিতে এই জাতীয় কিছু যুক্ত করতে পারেন (লিনাক্স এবং অনুরূপ পরিবেশে কাজ করে):

alias gtag='git tag -n99'

তারপরে আপনি যখনই আপনার ট্যাগগুলি দেখতে চান, আপনি কেবল টাইপ করুন gtag। ওরফে পাথের নীচে যাওয়ার আরও একটি সুবিধা (হয় গিট এলিয়াস বা ব্যাশ অ্যালিয়াস বা যাই হোক না কেন) আপনার কাছে ইতিমধ্যে এমন একটি জায়গা রয়েছে যেখানে আপনি ব্যক্তিগতভাবে কীভাবে আরও কাস্টমাইজেশন যুক্ত করতে পারেন, সাধারণত আপনার ট্যাগগুলি আপনাকে প্রদর্শন করতে চান (বাছাই করার মতো) এগুলি নির্দিষ্ট উপায়ে যেমন নীচে আমার মন্তব্যে, ইত্যাদি)। আপনার নিজের প্রথম উপন্যাসটি তৈরির ঘাটতি কাটিয়ে উঠলে, আপনি এখন বুঝতে পারবেন যে আপনার পছন্দ মতো কাস্টমাইজড পদ্ধতিতে কাজ করা অন্যান্য জিনিসের জন্য এর মধ্যে আরও কিছু তৈরি করা কতটা সহজ git log, তবে আসুন আমরা সেটিকে একটি আলাদা প্রশ্ন / উত্তরের জন্য সংরক্ষণ করি ।


3
git config --global alias.tags 'tag -n99'
আইলিয়ান ওনোফ্রেই

ইউলিয়ানঅনোফ্রেই, খুব ভাল, আমি জানতাম না যে গিট আপনাকে এলিয়াস সংজ্ঞা দেওয়ার অনুমতি দিয়েছে। আমি বুঝতে পারি এটি বন্ধ বিষয়, কিন্তু আমি প্রতিরোধ করতে পারি না। আমি এখন এটি ব্যবহার করছি (আপনার .bashrc বা এর মতো কিছুতে স্থাপন করা হয়েছে):alias gtag='git for-each-ref --format="%(refname:short) %(taggerdate) %(subject) %(body)" refs/tags | sort -V'
এখনও_ড্রিমিং_1

25

মার্ক লংগায়েরের উত্তর (ব্যবহার করা git show) প্রশ্নের মধ্যে যা পছন্দ করা হয়েছে তার কাছাকাছি। যাইহোক, এটিতে সেই প্রতিশ্রুতির সম্পূর্ণ প্যাচ সহ ট্যাগ দ্বারা চিহ্নিত প্রতিশ্রুতিও অন্তর্ভুক্ত রয়েছে। যেহেতু কমিটটি ট্যাগটির সাথে কিছুটা সম্পর্কযুক্ত হতে পারে (এটি কেবলমাত্র একটি প্রতিশ্রুতি দেয় যে ট্যাগটি ক্যাপচারের চেষ্টা করছে), এটি অনাকাঙ্ক্ষিত হতে পারে। আমি বিশ্বাস করি যে নিম্নলিখিতগুলি কিছুটা সুন্দর ic

for t in `git tag -l`; do git cat-file -p `git rev-parse $t`; done

মার্কের গিট শোতে আমার ব্যবহারের জন্য প্যাচগুলি প্রদর্শন করা হয়নি। তাঁর কমান্ডটি -p বা - প্যাচ বাদ দেয়, তবে ভিন্নতা এড়িয়ে যাওয়ার বিষয়ে নিশ্চিত হওয়ার জন্য, কেউ ব্যবহার করতে পারেন: - কোন-প্যাচ। (গিট ভি ২..7.১ / ম্যাকে)
অ্যানিএজিলে

13

এটি সুন্দর থেকে দূরে, তবে আপনি এমন কোনও স্ক্রিপ্ট বা একটি উপকরণ তৈরি করতে পারেন যা এরকম কিছু করে:

for c in $(git for-each-ref refs/tags/ --format='%(refname)'); do echo $c; git show --quiet "$c"; echo; done

একটি কারণ প্রতিস্থাপন করতে হয় না git for-each-ref refs/tags/ --format='%(refname)'সঙ্গে git tag -l?
শাই বার্গার

@ শাইবার্গার: বাস্তবে, আমি এটি মনে করি না - আমার ধারণা আমি কেবল ভাবছিলাম যে git tagচীনামাটির বাসন এবং git for-each-refনদীর গভীরতানির্ণয়, সুতরাং স্ক্রিপ্টিংয়ের জন্য আউটপুট আরও স্থিতিশীল হওয়া উচিত।
লংগায়ার

10

সর্বশেষ ট্যাগ বার্তা:

git cat-file -p $(git rev-parse $(git tag -l | tail -n1)) | tail -n +6

2
গুগল থেকে অন্য কারও জন্য এটি ঘটছে: আপনি যদি কোনও নির্দিষ্ট ট্যাগ থেকে বার্তাটি দেখাতে চান: git cat-file -p <tag> | tail -n +6
কিট পিটারস


2

আমি কমান্ড লাইনে এটি করা পছন্দ করি তবে আপনি যদি কোনও ওয়েব ইন্টারফেস মনে করেন না এবং আপনি গিটহাব ব্যবহার https://github.com/user/repo/tagsকরেন তবে আপনি এর টীকাটি প্রদর্শন করতে প্রতিটি ট্যাগের পাশে "..." এ ক্লিক করতে পারেন ।

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