একটি প্রদত্ত প্রতিশ্রুতিবদ্ধতার প্রতিশ্রুতি বার্তাটি মুদ্রণের জন্য আমার একটি নদীর গভীরতানির্ণয় কমান্ড দরকার - এর চেয়ে বেশি কিছুই নয়, কিছু কম নয়।
একটি প্রদত্ত প্রতিশ্রুতিবদ্ধতার প্রতিশ্রুতি বার্তাটি মুদ্রণের জন্য আমার একটি নদীর গভীরতানির্ণয় কমান্ড দরকার - এর চেয়ে বেশি কিছুই নয়, কিছু কম নয়।
উত্তর:
এটি "নদীর গভীরতানির্ণয়" নয়, তবে এটি আপনি যা চান ঠিক তা করবে:
$ git log --format=%B -n 1 <commit>
আপনার যদি একেবারে একটি "নদীর গভীরতানির্ণয়" কমান্ডের প্রয়োজন হয় (তবে কেন এটির প্রয়োজন তা নিশ্চিত নয়), আপনি ব্যবহার করতে পারেন rev-list:
$ git rev-list --format=%B --max-count=1 <commit>
যদিও rev-listকমিট বার্তা ছাড়াও কমিট শ (প্রথম লাইনে) মুদ্রণ করবে।
%s%bপরিবর্তে %B(একটি লিনাক্স বাক্সে) ব্যবহার করেছি
%Bএকটি সঠিক স্পেসিফার (কমপক্ষে, গিট 1.7.2 এ, কখন এটি যুক্ত হয়েছিল তা নিশ্চিত নয়)।
%B1.7.1 (সম্ভবত 1.7.1.1 এ) এর কিছু পরে যুক্ত হয়েছিল।
$ git log --format=%B -n 1 <commit> | cat -এটি আপনাকে প্রতিশ্রুতি বার্তা এবং কোনও প্রতিশ্রুতি দেয় না এবং আপনি এটি "পাইপ" করতে পারেন। আমি আসলে এটি আমার সিআই স্ক্রিপ্টের অংশ হিসাবে ব্যবহার করি।
git showএর চেয়ে আরও একটি নদীর গভীরতানির্ণয় কমান্ড git log, এবং একই বিন্যাসের বিকল্প রয়েছে:
git show -s --format=%B SHA1
%sপরিবর্তে ব্যবহার করুন %B।
নদীর গভীরতানির্ণয় নয়, তবে আমার .gitconfig এ এইগুলি রয়েছে:
lsum = log -n 1 --pretty=format:'%s'
lmsg = log -n 1 --pretty=format:'%s%n%n%b'
এটি "শেষ সংক্ষিপ্তসার" এবং "শেষ বার্তা"। আপনি সেই প্রতিশ্রুতিটির সারাংশ বা বার্তাটি পেতে একটি প্রতিশ্রুতি প্রদান করতে পারেন। (আমি ১.7.০.৫ ব্যবহার করছি সুতরাং% বি নেই))
এটি আপনাকে কোনও নির্দিষ্ট সময়ের জন্য সমস্ত বার্তাগুলির একটি খুব কমপ্যাক্ট তালিকা দেবে।
git log --since=1/11/2011 --until=28/11/2011 --no-merges --format=%B > CHANGELOG.TXT
আমি ব্যবহার শুরু
git show-branch --no-name <hash>
এর চেয়েও দ্রুত মনে হচ্ছে
git show -s --format=%s <hash>
উভয়ই একই ফলাফল দেয়
git show -s --oneline <commit>