2009-10-02 14 views
5

Tôi đã tự hỏi làm thế nào mọi người thường tách ra nhiều nhận xét trong một cam kết. Sao? Dấu phẩy? Các dòng riêng biệt? Chỉ cần tự hỏi những gì bạn thấy là tốt nhất.Trong git, một số quy ước tốt là gì để định dạng nhiều nhận xét thành một cam kết đơn

Tôi đang sử dụng này bây giờ khi tôi thêm ý kiến ​​qua Emacs, nhưng không chắc là tôi thích nó:

Added error messaging 
Cleaned up sign-up UI 
Added recaptcha 

# Please enter the commit message for your changes. Lines starting 
# with '#' will be ignored, and an empty message aborts the commit. 
# 
# Committer: Conrad Chu <[email protected]> 
# 
# On branch master 
# Changes to be committed: 
# (use "git reset HEAD <file>..." to unstage) 
# 
#  modified: app/controllers/api_controller.rb 
#  modified: app/controllers/users_controller.rb 
#  modified: app/models/user.rb 
#  modified: app/views/users/new.html.erb 
#  modified: app/views/users/show.html.erb 
#  modified: config/environment.rb 
#  modified: db/migrate/20090923001219_create_users.rb 
#  modified: db/schema.rb 
#  modified: doc/README 
#  modified: public/stylesheets/master.css 
#  new file: vendor/plugins/recaptcha/.gitignore 
#  new file: vendor/plugins/recaptcha/CHANGELOG 

Trả lời

18

Git có ước rất mạnh vào thông điệp nhật ký, nhưng các quy tắc rất đơn giản:

  1. dòng đầu tiên là một bản tóm tắt các cam kết
  2. dòng đầu tiên có thể có một mô tả tiền tố phạm vi "mô-đun:"
  3. dòng thứ hai là trống
  4. Sau đó, thảo luận theo các đoạn, miễn là cần phải có

Khi bắt đầu, bạn nên sử dụng các quy ước này, vì công cụ thuyết trình còn dựa vào chúng (Dòng thứ hai trống là quan trọng và trong nhiều các tình huống, bạn sẽ chỉ thấy bản tóm tắt đầu tiên.)

Với git, các cam kết phải nhỏ nên câu trả lời đầu tiên là tất nhiên, bạn không nên sửa đổi nhiều thứ trong một lần commit. Bạn nên có ba cam kết, không phải một.

Tuy nhiên, bạn có thể viết toàn bộ bài luận trong nhật ký cam kết, và ở đó bạn có thể mô tả các thay đổi của chúng trong mọi chi tiết (động lực, thiết kế bị loại bỏ, ý tưởng). Nếu ba thay đổi thực sự thuộc về nhau, văn bản này sẽ làm cho nó rõ ràng lý do tại sao.

Tôi đã tìm thấy more instructions mô tả các quy ước thư Git Cam kết tương tự, với các ví dụ về lệnh git nào phụ thuộc vào định dạng cụ thể. (Hầu hết tất cả đều dựa trên quy ước hiện có: Bản vá được gửi qua email.)

3

Tôi phải đồng ý với @ kaizer.se. Sử dụng khả năng của git để chỉnh sửa các giai đoạn thành 3 cam kết khác nhau. Bằng cách này, bạn có một ý tưởng rõ ràng về những gì mỗi sửa đổi và ý kiến ​​cam kết của bạn sẽ cung cấp cho bạn lý do tại sao. Trên một hợp nhất trở lại chi nhánh chính của bạn (giả sử bạn đang sử dụng các nhánh cho các mods đặc trưng), bạn có thể cuộn các commit nhỏ hơn này thành một hợp nhất.

3

tôi phấn đấu không phải cam kết những thay đổi đó đòi hỏi quá nhiều ý kiến, nhưng nếu có một nhu cầu cho nó Tôi thường làm điều gì đó như thế này:

Multiple changes: 

- done this 
- fixed that 
- removed other 

Maybe some additional explanations. 

Cố gắng giữ cam kết nguyên tử của bạn, như xa như các tính năng có liên quan . Tôi giai đoạn hunks hoặc dòng mã cho rằng khi tôi quên thực sự cam kết sau mỗi tính năng hoàn thành.

Các vấn đề liên quan