গিটে প্রদত্ত প্রতিশ্রুতিটির বার্তা প্রিন্ট করুন


244

একটি প্রদত্ত প্রতিশ্রুতিবদ্ধতার প্রতিশ্রুতি বার্তাটি মুদ্রণের জন্য আমার একটি নদীর গভীরতানির্ণয় কমান্ড দরকার - এর চেয়ে বেশি কিছুই নয়, কিছু কম নয়।


3
যদি কেউ এখানে একক-লাইন প্রতিশ্রুতি বার্তা প্রিন্ট করার উপায় খুঁজছেন তবে শুরুতে প্রদর্শিত git show -s --oneline <commit>
— হ্যাশটির

সার্ভার মেশিনে প্রতিশ্রুতি বার্তা মুদ্রণের জন্য আমাদের লাইনটি কোথায় যুক্ত করা উচিত? মানে কোন হুক ফাইল?

"নদীর গভীরতানির্ণয়" কমান্ড বলতে কী বোঝ?
— ব্রায়ান অ্যাশ

উত্তর:


332

এটি "নদীর গভীরতানির্ণয়" নয়, তবে এটি আপনি যা চান ঠিক তা করবে:

$ git log --format=%B -n 1 <commit>

আপনার যদি একেবারে একটি "নদীর গভীরতানির্ণয়" কমান্ডের প্রয়োজন হয় (তবে কেন এটির প্রয়োজন তা নিশ্চিত নয়), আপনি ব্যবহার করতে পারেন rev-list:

$ git rev-list --format=%B --max-count=1 <commit>

যদিও rev-listকমিট বার্তা ছাড়াও কমিট শ (প্রথম লাইনে) মুদ্রণ করবে।


4
আমার জন্য নিখুঁতভাবে কাজ করেছেন - তবে আমি %s%bপরিবর্তে %B(একটি লিনাক্স বাক্সে) ব্যবহার করেছি
— adamk

17
%Bএকটি সঠিক স্পেসিফার (কমপক্ষে, গিট 1.7.2 এ, কখন এটি যুক্ত হয়েছিল তা নিশ্চিত নয়)।
— মিপাদি

2
%B1.7.1 (সম্ভবত 1.7.1.1 এ) এর কিছু পরে যুক্ত হয়েছিল।
— মিপাদি

1
প্রকৃতপক্ষে এটি - গিট 1.7.2 আপাতভাবে। মুচস গ্রাসিয়াস!
— মার্ক প্রোবস্ট

আপনি এটিও ব্যবহার করতে পারেন: $ git log --format=%B -n 1 <commit> | cat -এটি আপনাকে প্রতিশ্রুতি বার্তা এবং কোনও প্রতিশ্রুতি দেয় না এবং আপনি এটি "পাইপ" করতে পারেন। আমি আসলে এটি আমার সিআই স্ক্রিপ্টের অংশ হিসাবে ব্যবহার করি।
— পাওলো মুউজ

138

git showএর চেয়ে আরও একটি নদীর গভীরতানির্ণয় কমান্ড git log, এবং একই বিন্যাসের বিকল্প রয়েছে:

git show -s --format=%B SHA1

9
এবং যদি আপনি কেবল প্রথম লাইনটি ("বিষয়") চান তবে তার %sপরিবর্তে ব্যবহার করুন %B।
— এনটিসি 2

13
(আমি এটি গ্রহণযোগ্য "লগ" বা "রেভ-তালিকা" উত্তরের চেয়ে পছন্দ করি, কারণ এটি 1 টি প্রবেশের মধ্যে সীমাবদ্ধ তালিকার চেয়ে একক প্রতিশ্রুতিবদ্ধ অপারেশন operation)
— রিচ

17

নদীর গভীরতানির্ণয় নয়, তবে আমার .gitconfig এ এইগুলি রয়েছে:

lsum = log -n 1 --pretty=format:'%s'
lmsg = log -n 1 --pretty=format:'%s%n%n%b'

এটি "শেষ সংক্ষিপ্তসার" এবং "শেষ বার্তা"। আপনি সেই প্রতিশ্রুতিটির সারাংশ বা বার্তাটি পেতে একটি প্রতিশ্রুতি প্রদান করতে পারেন। (আমি ১.7.০.৫ ব্যবহার করছি সুতরাং% বি নেই))


আপনি একটি পরামিতি হিসাবে আর্গুমেন্ট পাস করতে পারেন। সুতরাং কেবলমাত্র সর্বশেষ প্রতিশ্রুতি ফেরতের পরিবর্তে আপনি এটি সর্বশেষ 5 টি কমিটগুলি ফেরত দিতে পারেন। এখানে পরিবর্তন lsum = "! F () it গিট লগ -n n 1 - ব্যাখ্যা = ফর্ম্যাট: '% s';}; চ" lmsg = "! চ () it গিট লগ -n $ 1 - ব্যাখ্যা = ফর্ম্যাট : '% s এর% N% N% b';}; চ "খুঁজে তা এখানে stackoverflow.com/questions/7005513/... আপনি শুধুমাত্র এই Git lsum 5 রান
— kuklei

15

এটি আপনাকে কোনও নির্দিষ্ট সময়ের জন্য সমস্ত বার্তাগুলির একটি খুব কমপ্যাক্ট তালিকা দেবে।

git log --since=1/11/2011 --until=28/11/2011 --no-merges --format=%B > CHANGELOG.TXT

4

আমি ব্যবহার শুরু

git show-branch --no-name <hash>

এর চেয়েও দ্রুত মনে হচ্ছে

git show -s --format=%s <hash>

উভয়ই একই ফলাফল দেয়


1
এটি কেবল প্রথম লাইনটি (% s) দেখায়, পুরো প্রতিশ্রুতি বার্তাটি নয় ("আরও কিছু নয়, কিছু কম নয়", যেমন প্রশ্নকারী লিখেছেন)। যদি আপনার% B এর সাথে শো-শাখা করার কোনও উপায় থাকে তবে তা সহায়ক হবে।
— ক্যানোনিকাল ক্রিস

3

আমি এর জন্য শর্টলগ ব্যবহার করি:

$ git shortlog master..
Username (3):
      Write something
      Add something
      Bump to 1.3.8 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.