गिट का उपयोग करके चैंज को प्रबंधित करने के अच्छे तरीके?


214

मैं कुछ समय से Git का उपयोग कर रहा हूं, और मैंने हाल ही में अपनी रिलीज़ को टैग करने के लिए इसका उपयोग करना शुरू कर दिया है ताकि मैं और अधिक आसानी से परिवर्तनों पर नज़र रख सकूं और यह देखने में सक्षम हो सकूँ कि हमारे प्रत्येक क्लाइंट का कौन सा संस्करण चल रहा है (दुर्भाग्य से कोड वर्तमान में अनिवार्य है प्रत्येक ग्राहक के पास PHP साइट की अपनी प्रति है; मैं इसे बदल रहा हूं, लेकिन यह धीमी गति से चल रहा है)।

किसी भी मामले में, हम कुछ गति का निर्माण शुरू कर रहे हैं, मैंने सोचा कि लोगों को यह दिखाने में सक्षम होना वास्तव में अच्छा होगा कि पिछले रिलीज के बाद से क्या बदल गया है। समस्या यह है कि, मैं एक चैंज नहीं बना रहा हूं क्योंकि मुझे इस बारे में अच्छी जानकारी नहीं है कि इसके बारे में कैसे जाना जाए। इस विशेष समय के लिए, मैं लॉग के माध्यम से चला सकता हूं और मैन्युअल रूप से एक बना सकता हूं, लेकिन यह बहुत जल्दी थक जाएगा।

मैंने "git changelog" और "git manage changelog" को गॉगल करने की कोशिश की, लेकिन मुझे ऐसा कुछ भी नहीं मिला जो वास्तव में कोड परिवर्तन के वर्कफ़्लो के बारे में बात करता हो और जो चैंज के साथ मेल खाता हो। हम वर्तमान में रेन हेनरिच के विकास वर्कफ़्लो का अनुसरण कर रहे हैं और मुझे उस चीज़ के साथ कुछ अच्छा लगेगा जो इसके साथ गया था।

क्या कोई मानक दृष्टिकोण है जो मुझे याद आ रहा है, या यह एक ऐसा क्षेत्र है जहाँ हर कोई अपनी बात करता है?

आपकी टिप्पणियों / उत्तरों के लिए बहुत बहुत धन्यवाद!

जवाबों:


181

यह लगभग 3-4 साल पहले था, लेकिन भविष्य के खोजकर्ताओं के लिए, अब इसके साथ भव्य लॉग उत्पन्न करना संभव है:

git log --oneline --decorate

या, यदि आप चाहते हैं कि यह भी सुंदर हो (टर्मिनल के लिए रंग के साथ):

git log --oneline --decorate --color

चेंजलॉग में उस आउटपुट को पाइप करना जो मैं वर्तमान में अपनी सभी परियोजनाओं में उपयोग कर रहा हूं, यह बस आश्चर्यजनक है।


4
एक अन्य उपयोगी टैग है --graph, जो नेत्रहीन आपको दिखाता है कि कौन सी शाखाएं कमिट पर हैं।
Eruant

44
मैं एक CHANGELOG के रूप में उपहार लॉग के उपयोग के खिलाफ दृढ़ता से सलाह दूंगा
ओलिवियर लैकन

4
git logचैंज करने के लिए आउटपुट की नकल करने का कोई मतलब नहीं है। आपको एक पठनीय चैंज होने के लिए फ़िल्टरिंग और एडिटिंग का काम करने की आवश्यकता है, अन्यथा, आपको चैंज की आवश्यकता भी क्यों होगी? मुझे लगता है कि आप एक चैंज की पीढ़ी को स्वचालित कर सकते हैं लेकिन कृपया इसकी कच्ची नकल न करें git log!
वाब

19
इसके साथ समस्या यह है कि, यहां तक ​​कि यह मानते हुए कि आपकी परियोजना में हर योगदानकर्ता स्पष्ट और पठनीय संदेश लिखता है, आप अभी भी एक "चैंज" उत्पन्न कर रहे होंगे जिसमें शोर का स्वर होगा। चांगेलॉग्स को आपकी परियोजना के उपयोगकर्ताओं को उनके द्वारा जारी किए गए उल्लेखनीय परिवर्तनों के बारे में समझाने के लक्ष्य के साथ लिखा जाना चाहिए , जबकि प्रतिबद्ध संदेशों को डेवलपर्स को यह समझाने पर ध्यान केंद्रित करना चाहिए कि आपकी प्रतिबद्धता कोड में क्या सुधार करती है । कभी-कभी वहां ओवरलैप होता है, लेकिन हमेशा नहीं।
Ajedi32

7
या, इसे थोड़ा और ठोस बनाने के लिए, यह विधि एक "चेंज लॉग" बनाएगी जिसमें ढेर सारी प्रविष्टियाँ होंगी जैसे "ZModule में fooMethod की फिक्स्ड स्पेलिंग" और "XYLLaryary के नए संस्करण का उपयोग करने के लिए रिफैक्टर एक्समॉडल"। आपके उपयोगकर्ता इस बारे में परवाह नहीं करते हैं। वे जानना चाहते हैं कि उपयोगकर्ताओं के रूप में उनके दृष्टिकोण से क्या परिवर्तन हुए हैं , न कि एक डेवलपर के रूप में आपका दृष्टिकोण। और वह सामान को अनदेखा कर रहा है जैसे "मर्ज पीआर # 123 से एक्सदेव / फू" और "ओप्प्स, फिक्स्ड न्यूफ्रीचर इसलिए यह वास्तव में काम करता है" टाइप चीजें जो किसी भी वास्तविक दुनिया रेपो में मौजूद होने की संभावना है।
Ajedi32

60

आप मदद करने के लिए गिट लॉग के कुछ स्वाद का उपयोग कर सकते हैं:

git log --pretty=%s                 # only print the subject

यदि आप अपनी शाखाओं को अच्छी तरह से नाम देते हैं, ताकि मास्टर में एक मर्ज "मर्ज की गई शाखा सुविधा-फ़ोबार" के रूप में दिखाई दे, तो आप केवल उस संदेश को दिखा कर चीजों को छोटा कर सकते हैं, और सभी छोटे कमिट्स जो आप मर्ज किए गए हैं, जो एक साथ बनते हैं सुविधा:

git log --pretty=%s --first-parent  # only follow first parent of merges

आप इसे अपनी खुद की एक स्क्रिप्ट के साथ बढ़ाने में सक्षम हो सकते हैं, जो "मर्ज की गई शाखा" बिट्स को स्ट्रिप करने जैसी चीजें कर सकता है, स्वरूपण को सामान्य कर सकता है, आदि कुछ बिंदु पर आपको इसे स्वयं लिखना होगा, हालांकि, निश्चित रूप से।

तब आप प्रति संस्करण एक बार चैंज के लिए एक नया अनुभाग बना सकते हैं:

git log [opts] vX.X.X..vX.X.Y | helper-script > changelogs/X.X.Y

और अपने संस्करण को जारी करने के लिए प्रतिबद्ध करें।

यदि आपकी समस्या यह है कि उन प्रतिबद्ध विषय कुछ भी नहीं हैं, जिसे आप चैंज में रखना चाहते हैं, तो आपके पास दो विकल्प हैं: सब कुछ मैन्युअल रूप से करते रहें (और पकड़ने के बजाय इसे नियमित रूप से जारी रखने की कोशिश करें- रिलीज के समय), या अपनी प्रतिबद्ध संदेश शैली को ठीक करें। एक विकल्प, यदि विषय आपके लिए ऐसा नहीं करने जा रहे हैं, तो आपके प्रतिबद्ध संदेशों के शरीरों में "परिवर्तन: अतिरिक्त सुविधा फ़ॉबर" जैसी लाइनें डालनी होंगी, ताकि बाद में आप कुछ ऐसा कर सकेंgit log --pretty=%B | grep ^change: केवल उन सुपर को हथियाने के संदेशों के महत्वपूर्ण बिट्स।

मुझे पूरी तरह से यकीन नहीं है कि उस चिट से ज्यादा आप अपने चैंज बनाने में मदद कर सकते हैं। हो सकता है कि मैंने "प्रबंधन" द्वारा आपके बारे में गलत व्याख्या की हो?


2
यह निश्चित रूप से एक शानदार शुरुआत है, और मैंने शरीर में एक संशोधक जोड़ने के बारे में नहीं सोचा था ताकि मैं इसे बाद में जीआरपी कर सकूं। यह वही हो सकता है जो मैं कर रहा हूं। प्रतिक्रिया के लिए धन्यवाद! अगर अगले दिन कोई जवाब नहीं मिलता है, तो मैं आपको जवाब के रूप में चिह्नित करूंगा। :-)
Topher Fangio

60

अस्वीकरण: मैं gitchangelog का लेखक हूं , जिसके बारे में मैं निम्नलिखित में बोलूंगा

टी एल; डॉ: आप जांच करना चाह सकते gitchangelog के स्वयं के बदलाव का या ascii उत्पादन है कि पिछले उत्पन्न।

यदि आप अपने गिट इतिहास से एक चैंज बनाना चाहते हैं, तो आपको शायद इस पर विचार करना होगा:

  • उत्पादन प्रारूप । (शुद्ध रिवाज ASCII, डेबियन चैंज प्रकार, मार्काडो, ReST ...)
  • कुछ प्रतिबद्ध फ़िल्टरिंग (आप शायद अपने टंकशाला में होने वाले सभी टाइपो या कॉस्मेटिक परिवर्तनों को नहीं देखना चाहते हैं)
  • चैंज में शामिल किए जाने से पहले कुछ कमिटिंग टेक्स्ट में तकरार । (पहले अक्षर अपरकेस या अंतिम डॉट के रूप में संदेशों का सामान्यीकरण सुनिश्चित करना, लेकिन यह सारांश में कुछ विशेष मार्कअप को भी हटा सकता है)
  • क्या आपका इतिहास इतिहास संगत है ? मर्जिंग, टैगिंग, हमेशा इतनी आसानी से नहीं होती है कि अधिकांश टूल द्वारा समर्थित हो। यह इस बात पर निर्भर करता है कि आप अपने इतिहास का प्रबंधन कैसे करते हैं।

वैकल्पिक रूप से आप कुछ वर्गीकरण (नई चीजें, परिवर्तन, बगफिक्स) चाहते हैं ...

इस सब को ध्यान में रखते हुए, मैंने gitchangelog का निर्माण और उपयोग किया । यह एक जीआईटी प्रतिबद्ध संदेश सम्मेलन का लाभ उठाने के लिए है पिछले लक्ष्यों के सभी को प्राप्त करने के लिए के लिए है।

एक अच्छा संदेश समूह बनाने के लिए एक प्रतिबद्ध संदेश सम्मेलन होना अनिवार्य है (उपयोग के साथ या बिना gitchangelog)।

संदेश सम्मेलन करें

निम्नलिखित ऐसे सुझाव हैं जो आपके प्रतिबद्ध संदेशों में जोड़ने के बारे में सोचने के लिए उपयोगी हो सकते हैं।

आप अपनी कमियों को बड़े वर्गों में अलग करना चाहते हैं:

  • इरादे से (उदाहरण के लिए: नया, फिक्स, परिवर्तन ...)
  • ऑब्जेक्ट द्वारा (उदाहरण के लिए: डॉक्टर, पैकेजिंग, कोड ...)
  • दर्शकों द्वारा (उदाहरण के लिए: देव, परीक्षक, उपयोगकर्ता ...)

इसके अतिरिक्त, आप कुछ कमिट्स टैग करना चाहते हैं:

  • "मामूली" के रूप में यह माना जाता है कि आपके चेंजलॉग (कॉस्मेटिक परिवर्तन, टिप्पणियों में छोटे टाइपो) के लिए आउटपुट नहीं मिलना चाहिए ...)
  • "रिफ्लेक्टर" के रूप में यदि आपके पास वास्तव में कोई महत्वपूर्ण विशेषता परिवर्तन नहीं है। इस प्रकार यह भी उदाहरण के लिए अंतिम उपयोगकर्ता को प्रदर्शित किए गए चैंज का हिस्सा नहीं होना चाहिए, लेकिन यदि आपके पास डेवलपर डेवलपर है तो कुछ दिलचस्पी हो सकती है।
  • आप एपीआई परिवर्तन या नए एपीआई सामान को चिह्नित करने के लिए "एपीआई" के साथ टैग भी कर सकते हैं ...
  • ...आदि...

उपयोगकर्ताओं (कार्यक्षमता) को जितनी बार आप कर सकते हैं, लक्ष्य करके अपना प्रतिबद्ध संदेश लिखने का प्रयास करें।

उदाहरण

यह git log --onelineदिखाने के लिए मानक है कि ये जानकारी कैसे संग्रहीत की जा सकती है ::

* 5a39f73 fix: encoding issues with non-ascii chars.
* a60d77a new: pkg: added ``.travis.yml`` for automated tests. 
* 57129ba new: much greater performance on big repository by issuing only one shell command for all the commits. (fixes #7)
* 6b4b267 chg: dev: refactored out the formatting characters from GIT.
* 197b069 new: dev: reverse ``natural`` order to get reverse chronological order by default. !refactor 
* 6b891bc new: add utf-8 encoding declaration !minor 

इसलिए यदि आपने देखा है, तो मैंने जो प्रारूप चुना है वह है:

{new|chg|fix}: [{dev|pkg}:] COMMIT_MESSAGE [!{minor|refactor} ... ]

एक वास्तविक उत्पादन परिणाम देखने के लिए, आप में से PyPI पृष्ठ के अंत में दिखाई दे सकता है gitchangelog

मेरे प्रतिबद्ध संदेश सम्मेलन का पूरा प्रलेखन देखने के लिए आप संदर्भ फ़ाइल gitchangelog.rc.reference देख सकते हैं

इससे उत्तम चैंज कैसे उत्पन्न किया जाए

फिर, एक पूर्ण चैंज बनाने में काफी आसान है। आप अपनी स्क्रिप्ट को बहुत तेज़ी से बना सकते हैं, या उपयोग कर सकते हैंgitchangelog

gitchangelogएक पूर्ण चेंजगॉग उत्पन्न करेगा (सेक्शनिंग सपोर्ट के रूप में New, Fix...), और अपने स्वयं के प्रतिबद्ध सम्मेलनों के लिए उचित रूप से विन्यास योग्य है। यह के माध्यम से templating के लिए उत्पादन धन्यवाद किसी भी प्रकार का समर्थन करता है Mustache, Mako templatingतथा एक डिफ़ॉल्ट विरासत इंजन कच्चे अजगर में लिखा है; सभी मौजूदा 3 इंजनों के उदाहरण हैं कि उनका उपयोग कैसे किया जाए और चैंजोगोग को आउटपुट कर सकते हैं जैसे कि gitchangelog के PyPI पृष्ठ पर प्रदर्शित किया गया है।

मुझे यकीन है कि कर रहा हूँ तुम्हें पता है वहाँ अन्य के बहुत सारे हैं कि git logकरने के लिए changelogभी वहाँ उपकरण।


1
यह कमाल है, वास्तव में मैं क्या देख रहा था। मैं यह कोशिश करूँगा, बहुत बहुत धन्यवाद!
जेफ किइजा

26

बिंदु CHANGELOG के लिए एक और। मुझे बताओ अगर तुम लोगों को यह पसंद है।

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

यह थोथा यह करता है: मैं अन्य मापदंडों को जोड़ूंगा--format , जैसा कि git-scm.com/docs/git-log#_pretty_formats
bluesmonk

23

gitlog-to-changelogस्क्रिप्ट काम में आता एक जीएनयू शैली उत्पन्न करने के लिए ChangeLog

जैसा कि दिखाया गया है gitlog-to-changelog --help, आप ChangeLogकिसी विकल्प का उपयोग करके फ़ाइल बनाने के लिए उपयोग किए जाने वाले कमिट का चयन कर सकते हैं --since:

gitlog-to-changelog --since=2008-01-01 > ChangeLog

या उसके बाद अतिरिक्त तर्क पारित करके --, जिसे git-log(आंतरिक रूप से कहा जाता है gitlog-to-changelog) पास किया जाएगा:

gitlog-to-changelog -- -n 5 foo > last-5-commits-to-branch-foo

उदाहरण के लिए, मैं Makefile.amअपनी एक परियोजना के शीर्ष-स्तर में निम्नलिखित नियम का उपयोग कर रहा हूं:

.PHONY: update-ChangeLog
update-ChangeLog:
    if test -d $(srcdir)/.git; then                         \
       $(srcdir)/build-aux/gitlog-to-changelog              \
          --format='%s%n%n%b%n' --no-cluster                \
          --strip-tab --strip-cherry-pick                   \
          -- $$(cat $(srcdir)/.last-cl-gen)..               \
        >ChangeLog.tmp                                      \
      && git rev-list -n 1 HEAD >.last-cl-gen.tmp           \
      && (echo; cat $(srcdir)/ChangeLog) >>ChangeLog.tmp    \
      && mv -f ChangeLog.tmp $(srcdir)/ChangeLog            \
      && mv -f .last-cl-gen.tmp $(srcdir)/.last-cl-gen      \
      && rm -f ChangeLog.tmp;                               \
    fi

EXTRA_DIST += .last-cl-gen

इस नियम का उपयोग ChangeLogनवीनतम समय पर रिकॉर्ड किए गए प्रतिबद्ध संदेशों के साथ अद्यतन करने के लिए रिलीज़ समय पर किया जाता है । फ़ाइल .last-cl-genमें दर्ज नवीनतम प्रतिबद्ध SHA1 पहचानकर्ता होता है ChangeLogऔर इसे Git रिपॉजिटरी में संग्रहीत किया जाता है। ChangeLogरिपॉजिटरी में भी दर्ज किया जाता है, ताकि इसे प्रतिबद्ध संदेशों को बदले बिना संपादित किया जा सके (जैसे टाइपो को सही करने के लिए)।


GCC mklog स्क्रिप्ट रोचक भी हो सकती है: stackoverflow.com/a/31606865/895245
Ciro Santilli Sant log log log

यह जीतने वाली परियोजना होनी चाहिए! आपके पास जीथब पर क्यों नहीं है?
ओमर डेगन

20

चूंकि प्रति संस्करण एक टैग बनाना सबसे अच्छा अभ्यास है, आप प्रति संस्करण अपने चैंज को विभाजित करना चाह सकते हैं। उस स्थिति में, यह आदेश आपकी मदद कर सकता है:

git log YOUR_LAST_VERSION_TAG..HEAD --no-merges --format=%B

15

के लिए GitHub परियोजनाओं यह उपयोगी हो सकता है: GitHub-बदलाव का-जनरेटर

यह टैग बंद मुद्दों से चेंगलॉग उत्पन्न करता है, और पुल-अनुरोध को मर्ज करता है।

यह CHANGELOG.md इस स्क्रिप्ट द्वारा उत्पन्न किया गया था।

उदाहरण:

बदलाव का

1.2.5 (2015-01-15)

पूर्ण चैंज

लागू संवर्द्धन:

  • यह बताने के लिए कि कौन सा संस्करण बग # 22 तय किया गया था, मील का पत्थर का उपयोग करें

ठीक हो गया:

  • # 32 टैग के बिना रेपो के लिए लॉग जनरेट करने का प्रयास करते समय त्रुटि

मर्ज किए गए पुल अनुरोध:

  • प्रिटीप्रिंट क्लास में लोअरकेस 'पीपी' # 43 ( schwing ) का उपयोग करना शामिल है

  • कमांड लाइन विकल्प # 42 ( ग्लेनलोवेट ) के माध्यम से एंटरप्राइज़ जीथुब का समर्थन करें


ऐसी परियोजनाएं सबसे अच्छी हैं :) इसे करने के लिए आपकी प्रेरणा क्या थी? आपकी प्रेरणा के लिए भी, मैंने एक परिचित उपकरण बनाया है, जो बिना लेबल के काम करता है, जोड़ा / बदला / तय / हटाया गया है और PHP में है (मेरी "मूल" भाषा): github.com/Symplify/ChangelogLinket क्या आप चंगल के बारे में पोस्ट लिखते हैं ? मैं उन्हें पढ़ना चाहता हूँ
Tomáš Votruba

1
@ TomášVotruba गर्म शब्दों के लिए धन्यवाद। यह सिर्फ मेरा शौक है। मैंने बहुत पोस्ट नहीं किया। लेकिन मुझे लगता है कि यह इसके लायक है। शुभकामनाएँ!
स्काईविंदर

10

मैंने इसके लिए एक पुस्तकालय भी बनाया। यह मूंछ टेम्पलेट के साथ पूरी तरह से विन्यास योग्य है। कर सकते हैं:

  • CHANGELOG.md की तरह फ़ाइल में संग्रहित करें ।
  • MediaWiki पर पोस्ट किया जाए
  • या बस STDOUT पर प्रिंट किया जाए

मैंने भी बनाया:

Github पर अधिक जानकारी: https://github.com/tomasbjerre/git-changelog-lib

कमांड लाइन से:

npx git-changelog-command-line -std -tec "
# Changelog

Changelog for {{ownerName}} {{repoName}}.

{{#tags}}
## {{name}}
 {{#issues}}
  {{#hasIssue}}
   {{#hasLink}}
### {{name}} [{{issue}}]({{link}}) {{title}} {{#hasIssueType}} *{{issueType}}* {{/hasIssueType}} {{#hasLabels}} {{#labels}} *{{.}}* {{/labels}} {{/hasLabels}}
   {{/hasLink}}
   {{^hasLink}}
### {{name}} {{issue}} {{title}} {{#hasIssueType}} *{{issueType}}* {{/hasIssueType}} {{#hasLabels}} {{#labels}} *{{.}}* {{/labels}} {{/hasLabels}}
   {{/hasLink}}
  {{/hasIssue}}
  {{^hasIssue}}
### {{name}}
  {{/hasIssue}}

  {{#commits}}
**{{{messageTitle}}}**

{{#messageBodyItems}}
 * {{.}} 
{{/messageBodyItems}}

[{{hash}}](https://github.com/{{ownerName}}/{{repoName}}/commit/{{hash}}) {{authorName}} *{{commitTime}}*

  {{/commits}}

 {{/issues}}
{{/tags}}
"

या जेनकिंस में:

यहां छवि विवरण दर्ज करें


3
git log --oneline --no-merges `git describe --abbrev=0 --tags`..HEAD | cut -c 9- | sort

क्या मुझे उपयोग करना पसंद है। यह अंतिम टैग के बाद से सभी कमिट हो जाता है। cutप्रतिबद्ध हैश से छुटकारा। यदि आप अपने प्रतिबद्ध संदेशों की शुरुआत में टिकट नंबरों का उपयोग करते हैं, तो उन्हें समूहबद्ध किया जाता है sort। यदि आप कुछ आदि के साथ उपसर्ग करते हैं fix, तो छंटनी भी मदद करती है typo


3

मैं सीआई सर्वर CHANGELOGको रिलीज-फाइल में निर्धारित तिथि के साथ प्रत्येक नई रिलीज के लिए नामित एक फाइल में निम्नलिखित देता हूं :

>git log --graph --all --date=relative --pretty=format:"%x09 %ad %d %s (%aN)"

2

एक के लिए जीएनयू शैली बदलाव का , मैं समारोह पकाया गया है

gnuc() {
  {
    printf "$(date "+%Y-%m-%d")  John Doe  <john.doe@gmail.com>\n\n"
    git diff-tree --no-commit-id --name-only -r HEAD | sed 's/^/\t* /'
  } | tee /dev/tty | xsel -b
}

इसके साथ:

  • मैं अपने परिवर्तनों को समय-समय पर बैकअप के लिए करता हूं और चेंजलॉग को फाइनल एडिट करने से पहले उन्हें रिजेक्ट कर देता हूं
  • फिर भागो: gnuc

और अब मेरे क्लिपबोर्ड में कुछ इस तरह है:

2015-07-24  John Doe  <john.doe@gmail.com>

        * gdb/python/py-linetable.c (): .
        * gdb/python/py-symtab.c (): .

फिर मैं चेंजबोर्ड को अपडेट करने के लिए एक शुरुआती बिंदु के रूप में क्लिपबोर्ड का उपयोग करता हूं।

यह सही नहीं है (उदाहरण के लिए फ़ाइलें, उनके चैंज पथ के अनुरूप होना चाहिए ताकि python/py-symtab.cबिना gdb/के बाद से मैं संपादित करेंगे gdb/ChangeLog), लेकिन एक अच्छा प्रारंभिक बिंदु है।

अधिक उन्नत स्क्रिप्ट:

हालांकि मुझे ट्रॉमी से सहमत होना होगा: चेंजलॉग में जीट कमिट डेटा की नकल करना बेकार है।

यदि आप एक चैंज बनाने जा रहे हैं, तो यह एक अच्छा सारांश बनाएं कि क्या चल रहा है, संभवतः http://keepacelel.com/ पर निर्दिष्ट किया गया है


2

बिटवॉक के आधार पर , यह last tagतब तक सूचीबद्ध करता है HEAD। लेकिन मुझे उम्मीद है कि 2 टैग्स के बीच लॉग्स को सूचीबद्ध किया जाएगा।

// 2 or 3 dots between `YOUR_LAST_VERSION_TAG` and `HEAD`
git log YOUR_LAST_VERSION_TAG..HEAD --no-merges --format=%B

2 टैग के बीच लॉग की सूची दें।

// 2 or 3 dots between 2 tags
git log FROM_TAG...TO_TAG

उदाहरण के लिए, यह लॉग्स v1.0.0टू लिस्ट से होगा v1.0.1

git log v1.0.0...v1.0.1 --oneline --decorate

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.