หมายเหตุ:ผมผู้เขียนของgitchangelogซึ่งผมจะพูดต่อไปนี้
TL: DR:คุณอาจต้องการตรวจสอบการเปลี่ยนแปลงของ gitchangelogหรือเอาต์พุต asciiที่สร้างก่อนหน้านี้
หากคุณต้องการสร้างการเปลี่ยนแปลงจากประวัติ git ของคุณคุณอาจต้องพิจารณา:
- รูปแบบการออก (ASCII แบบกำหนดเองที่บริสุทธิ์ประเภท Debian changelog, Markdow, ReST ... )
- บางกระทำการกรอง (คุณอาจไม่ต้องการที่จะเห็นทั้งหมดหรือเปลี่ยนแปลงเครื่องสำอาง typo ที่ได้รับในการเปลี่ยนแปลงของคุณ)
- บางคนกระทำการบิดข้อความก่อนที่จะรวมอยู่ในการเปลี่ยนแปลง (การทำให้มาตรฐานของข้อความเป็นตัวอักษรตัวใหญ่ตัวพิมพ์ใหญ่หรือจุดสุดท้าย แต่มันอาจจะเป็นการลบมาร์กอัปพิเศษในบทสรุปด้วย)
- ประวัติคอมไพล์ของคุณเข้ากันได้ไหม. การรวมการติดแท็กอาจไม่ได้รับการสนับสนุนอย่างง่ายดายจากเครื่องมือส่วนใหญ่ ขึ้นอยู่กับว่าคุณจัดการประวัติของคุณอย่างไร
ไม่จำเป็นคุณอาจต้องการการจัดหมวดหมู่ (สิ่งใหม่การเปลี่ยนแปลงข้อผิดพลาด) ...
ด้วยทั้งหมดนี้ในใจผมสร้างและการใช้gitchangelog มันหมายถึงการใช้ประโยชน์จากการคอมไพล์ข้อความคอมไพล์เพื่อให้บรรลุเป้าหมายก่อนหน้านี้ทั้งหมด
การมีข้อตกลงการส่งข้อความเป็นสิ่งที่จำเป็นในการสร้างการเปลี่ยนแปลงที่ดี (มีหรือไม่มีการใช้gitchangelog
)
ยอมรับการประชุมข้อความ
ต่อไปนี้เป็นคำแนะนำเกี่ยวกับสิ่งที่อาจเป็นประโยชน์ในการคิดเกี่ยวกับการเพิ่มในข้อความที่ส่งถึงคุณ
คุณอาจต้องการแยกข้อผูกพันของคุณออกเป็นส่วนใหญ่:
- โดยเจตนา (ตัวอย่างเช่นใหม่แก้ไขเปลี่ยนแปลง ... )
- โดยวัตถุ (เช่น: doc, บรรจุภัณฑ์, รหัส ... )
- โดยผู้ชม (เช่น: dev, ผู้ทดสอบ, ผู้ใช้ ... )
นอกจากนี้คุณอาจต้องการติดแท็กคอมมิทบางอย่าง:
- ในฐานะ "ผู้เยาว์" ที่ไม่ควรส่งออกไปยังรายการเปลี่ยนแปลงของคุณ (การเปลี่ยนแปลงเครื่องสำอางการพิมพ์ผิดขนาดเล็กในความคิดเห็น ... )
- ในฐานะ "refactor" หากคุณไม่มีการเปลี่ยนแปลงคุณสมบัติที่สำคัญใด ๆ ดังนั้นสิ่งนี้ไม่ควรเป็นส่วนหนึ่งของการเปลี่ยนแปลงที่แสดงต่อผู้ใช้ขั้นสุดท้ายเช่นกัน แต่อาจเป็นที่สนใจหากคุณมีการเปลี่ยนแปลงนักพัฒนา
- คุณสามารถติดแท็กด้วย "api" เพื่อทำเครื่องหมายการเปลี่ยนแปลง API หรือสิ่ง API ใหม่ ...
- ... ฯลฯ ...
พยายามเขียนข้อความการส่งของคุณโดยกำหนดเป้าหมายผู้ใช้ (ฟังก์ชันการทำงาน) บ่อยเท่าที่จะทำได้
ตัวอย่าง
นี่เป็นมาตรฐานที่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 ทั้งหมดในปัจจุบันมีตัวอย่างของวิธีการใช้และสามารถเปลี่ยนเอาท์พุทของการเปลี่ยนแปลงตามที่แสดงในหน้า PyPI ของ gitchangelog
ฉันแน่ใจว่าคุณรู้ว่ามีความอุดมสมบูรณ์ของอื่น ๆgit log
ที่จะchangelog
มีเครื่องมือออกยัง
--graph
ที่แสดงให้คุณเห็นว่าเปิดคอมมิทใดไว้