আমার সিস্টেমে সমস্ত ট্যাগ তৈরি হওয়ার তারিখের মধ্যে তালিকা তৈরি করার জন্য আমার কিছু উপায় প্রয়োজন তবে আমি নিশ্চিত নই যে গিট-লগের মাধ্যমে আমি সেই ডেটা পেতে পারি। ধারনা?
আমার সিস্টেমে সমস্ত ট্যাগ তৈরি হওয়ার তারিখের মধ্যে তালিকা তৈরি করার জন্য আমার কিছু উপায় প্রয়োজন তবে আমি নিশ্চিত নই যে গিট-লগের মাধ্যমে আমি সেই ডেটা পেতে পারি। ধারনা?
উত্তর:
ট্যাগ তৈরির তারিখ অনুসারে বাছাই করা টীকাযুক্ত এবং লাইটওয়েট ট্যাগগুলির সাথে কাজ করে:
git for-each-ref --sort=creatordate --format '%(refname) %(creatordate)' refs/tags
git for-each-ref --format="%(taggerdate): %(refname)" --sort=-taggerdate --count=10 refs/tagsআমার যা প্রয়োজন ঠিক তাই করেছিল ধন্যবাদ!
%(contents)প্রয়োজনে টীকা যুক্ত করতে ব্যবহার করতে পারেন, উদাহরণস্বরূপgit for-each-ref --sort='*authordate' --format='%(taggerdate:short) | %(tag) | %(contents)' refs/tags
git for-each-ref --sort=taggerdate --format '%(tag)'
--sort=creatordateটীকাগুলি এবং অননোটবিহিত ট্যাগ উভয়ের জন্যই কাজ করে তবে --sort=taggerdateকেবল টীকাবিহীন ট্যাগগুলির সাথেই কাজ করে বলে মনে হচ্ছে। ব্যবহার করে পরীক্ষিতgit version 2.16.3
গিট ২.৮ (মার্চ ২০১)) গিট ১.৪.৪ (অক্টোবর ২০০6) এর সাথে ডেটে অন্য বিকল্প ডকুমেন্ট করে ।
দেখুন কমিট e914ef0 দ্বারা (05 জানুয়ারী 2016) এরিক ওয়াং ( ele828) ।
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে কমিট 108cb77 , 20 জানুয়ারী 2016)
নতুন দেখুন Documentation/git-for-each-ref.txt
প্রতিশ্রুতিবদ্ধ এবং ট্যাগ অবজেক্টের জন্য, বিশেষ
creatordateএবংcreatorক্ষেত্রগুলি অবজেক্টের ধরণের উপর নির্ভর করেcommitterবাtaggerক্ষেত্র থেকে উপযুক্ত তারিখ বা নাম-ইমেল-তারিখের টিপলের সাথে সামঞ্জস্য করবে ।
এগুলি এনোটেটেড এবং লাইটওয়েট ট্যাগগুলির মিশ্রণে কাজ করার উদ্দেশ্যে ।
তাই creatordateট্যাগ সহ কাজ করে :
git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(refname) %(*objectname) %(objectname)' refs/tags | \
sort -n | awk '{ print $4, $3; }'
বা:
git tag --sort=-creatordate
আমি যেমন " rc-XYZW ফর্মের সংস্করণ স্ট্রিং ক্রম অনুসারে গিট ট্যাগগুলিকে কীভাবে সাজান? " এ আমি বিশদ হিসাবে , আপনি এখানে একটি সাজানোর ক্রম যুক্ত করতে পারেনgit tag (গিট ২.০ জুন ২০১৪ সাল থেকে) এর ।
এই সাজানোর অর্ডারে ক্ষেত্রের নাম (তালিকাভুক্ত git for-each-ref) ট্যাগগারেট অন্তর্ভুক্ত রয়েছে । যে জন্য করতে পারবেন git tag --sort=taggerdate(উল্লেখ DarVar নিচে )
উদাহরণস্বরূপ, মধ্যে git/gitরেপো এটা তালিকা প্রস্তুত করা যাবে v2.10.0ট্যাগ শেষ:
v2.9.1
v2.9.2
v2.9.3
v2.10.0-rc0
v2.10.0-rc1
v2.10.0-rc2
v2.10.0
ডিফল্ট অর্ডারটি ( git tag) করবে না :
v2.1.2
v2.1.3
v2.1.4
v2.10.0
v2.10.0-rc0
v2.10.0-rc1
v2.10.0-rc2
v2.2.0
creatordate!
git log --tags --simplify-by-decoration --pretty="format:%ci %d"
(তারিখের ক্ষেত্র ছাড়াই) থেকেও দুর্দান্ত আউটপুট:
git log --tags --decorate --simplify-by-decoration --oneline
নির্ভরতা এবং স্ট্রিপড লিনিয়ার কমিটগুলির সাথে সম্পূর্ণ ইতিহাস দেখতে (কেবলমাত্র প্রয়োজনীয় ইভেন্টগুলি, যেমন ট্যাগিং এবং শাখা / মার্জিং):
git log --graph --decorate --simplify-by-decoration --oneline --all
git log --tags --simplify-by-decoration --pretty="format:%ci %d" | grep "tag:"এবং এটি আমার পক্ষে সবচেয়ে ভাল কাজ করে।
git tag --sort=-taggerdate
ম্যান পৃষ্ঠা অনুসারে, "উপসর্গ - মানের ক্রমবর্ধমান ক্রমকে সাজানোর জন্য।"
git tagঅনুরূপভাবে বাছাই করা কীগুলি ব্যবহার করে git-for-each-refযা কীগুলি নথিভুক্ত করা হয়।
এই ওয়ান-লাইনার কোনও ঝগড়া ছাড়াই তারিখ এবং ট্যাগগুলি প্রদর্শন করে।
git tag --format='%(creatordate:short)%09%(refname:strip=2)'
আউটপুট:
2015-04-01 storaged-2.0.0
2015-06-11 storaged-2.1.0
2015-08-06 storaged-2.1.1
...
আপনি যদি ট্যাগগুলি ডিফল্ট অনুসারে বাছাই করা পছন্দ করেন না --sort=creatordate, উদাহরণস্বরূপ, বিকল্পের সাথে তারিখ অনুসারে বাছাই করতে পারেন । আরও তথ্যের জন্য ভনসি উত্তর দেখুন ।
কমিটের তারিখের উপর ভিত্তি করে টীকাযুক্ত ট্যাগ এবং লাইটওয়েট ট্যাগগুলি সম্পূর্ণ বাছাই করতে, আমি ব্যবহার করছি:
git for-each-ref --format='%(*committerdate:raw)%(committerdate:raw) %(refname) %(*objectname) %(objectname)' refs/tags | \
sort -n | awk '{ print $4, $3; }'
এই কমান্ডটি প্রতিটি ট্যাগ এবং সম্পর্কিত কমিট অবজেক্ট আইডি, কালানুক্রমিকভাবে তালিকাভুক্ত করবে।
নিম্নলিখিতটি কমিটের উপর নির্ভর করে, সুতরাং কমিটের সাথে তারিখের তথ্য আছে কিনা তা বিবেচ্য নয়:
git log --tags --decorate --simplify-by-decoration|grep ^commit|grep tag|sed -e 's/^.*: //' -e 's/)$//' -e 's/,.*$//'|tac
জোশ লির উপরের উত্তরটি অর্ডারটি সঠিক হওয়ার জন্য কোনও ট্যাগের তারিখের উপর নির্ভর করে।
tacকী তা - এটি এটিকে পরিবর্তন করতে পারে more। যাইহোক আপনার কমান্ড দুর্দান্ত কাজ করেছে - ধন্যবাদ!
পূর্বে উল্লিখিত পদ্ধতিগুলির ভিত্তিতে আমি তালিকায় প্রকৃত ট্যাগের তারিখটিও দেখতে চেয়েছিলাম এবং তাই আমার ব্যবহারের সংস্করণটি হ'ল:
git for-each-ref --format='%(*creatordate:raw)%(creatordate:raw) %(creatordate:short) %(refname) %(*objectname) %(objectname)' refs/tags | sort -n | awk '{ print $3, $5, $4 }'