TUYÊN BỐ TỪ CHỐI: Tôi là tác giả của gitchangelog mà tôi sẽ nói sau đây.
TL; DR: Bạn có thể muốn kiểm tra thay đổi riêng của gitchangelog hoặc đầu ra ascii đã tạo trước đó.
Nếu bạn muốn tạo một thay đổi từ lịch sử git của mình, có lẽ bạn sẽ phải xem xét:
- các định dạng đầu ra . (ASCII tùy chỉnh thuần túy, loại thay đổi Debian, Markdow, ReST ...)
- một số bộ lọc cam kết (có thể bạn không muốn thấy tất cả các thay đổi của typo hoặc mỹ phẩm nhận được trong thay đổi của bạn)
- một số cam kết văn bản lộn xộn trước khi được đưa vào thay đổi. (Đảm bảo bình thường hóa các tin nhắn có chữ hoa đầu tiên hoặc dấu chấm cuối cùng, nhưng nó cũng có thể xóa một số đánh dấu đặc biệt trong bản tóm tắt)
- lịch sử git của bạn có tương thích không? Việc hợp nhất, gắn thẻ, không phải lúc nào cũng dễ dàng được hỗ trợ bởi hầu hết các công cụ. Nó phụ thuộc vào cách bạn quản lý lịch sử của bạn.
Tùy chọn bạn có thể muốn một số phân loại (những điều mới, thay đổi, sửa lỗi) ...
Với tất cả những điều này, tôi đã tạo và sử dụng gitchangelog . Nó có nghĩa là tận dụng một quy ước thông điệp cam kết git để đạt được tất cả các mục tiêu trước đó.
Có một quy ước thông điệp cam kết là bắt buộc để tạo ra một thay đổi tốt đẹp (có hoặc không sử dụng gitchangelog
).
cam kết thông điệp
Sau đây là những gợi ý về những gì có thể hữu ích để suy nghĩ về việc thêm vào các thông điệp cam kết của bạn.
Bạn có thể muốn tách khoảng cam kết của mình thành các phần lớn:
- theo ý định (ví dụ: mới, sửa chữa, thay đổi ...)
- theo đối tượng (ví dụ: doc, bao bì, mã ...)
- theo đối tượng (ví dụ: dev, người kiểm tra, người dùng ...)
Ngoài ra, bạn có thể muốn gắn thẻ một số cam kết:
- như "cam kết" nhỏ không nên xuất ra thay đổi của bạn (thay đổi mỹ phẩm, lỗi đánh máy nhỏ trong nhận xét ...)
- là "tái cấu trúc" nếu bạn không thực sự có bất kỳ thay đổi tính năng quan trọng nào. Do đó, đây cũng không phải là một phần của thay đổi được hiển thị cho người dùng cuối cùng, nhưng có thể được quan tâm nếu bạn có một thay đổi nhà phát triển.
- bạn cũng có thể gắn thẻ bằng "api" để đánh dấu các thay đổi API hoặc công cụ API mới ...
- ...Vân vân...
Cố gắng viết thông điệp cam kết của bạn bằng cách nhắm mục tiêu người dùng (chức năng) thường xuyên nhất có thể.
thí dụ
Đây là tiêu chuẩn git log --oneline
để cho thấy những thông tin này có thể được lưu trữ như thế nào ::
* 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
Vì vậy, nếu bạn nhận thấy, định dạng tôi chọn là:
{new|chg|fix}: [{dev|pkg}:] COMMIT_MESSAGE [!{minor|refactor} ... ]
Để xem kết quả đầu ra thực tế, bạn có thể nhìn vào phần cuối của trang PyPI của gitchangelog
Để xem tài liệu đầy đủ về quy ước thông điệp cam kết của tôi, bạn có thể xem tệp tham chiếu gitchangelog.rc.reference
Làm thế nào để tạo ra thay đổi tinh tế từ đây
Sau đó, thật dễ dàng để thực hiện một thay đổi hoàn toàn. Bạn có thể tạo tập lệnh của riêng mình khá nhanh hoặc sử dụng gitchangelog
.
gitchangelog
sẽ tạo ra một thay đổi đầy đủ (có hỗ trợ phân đoạn như New
, Fix
...) và có thể cấu hình hợp lý theo các quy ước cam kết của riêng bạn. Nó hỗ trợ bất kỳ loại đầu ra nhờ templating qua Mustache
, Mako templating
và có một động cơ di sản mặc định viết bằng python liệu; tất cả 3 công cụ hiện tại đều có ví dụ về cách sử dụng chúng và có thể xuất ra các thay đổi như một công cụ được hiển thị trên trang PyPI của gitchangelog.
Tôi chắc chắn rằng bạn biết rằng có rất nhiều khác git log
để changelog
công cụ hiện có cũng có.
--graph
, hiển thị trực quan cho bạn các nhánh mà các cam kết được bật.