Viết tin nhắn cam kết là một nhà phát triển solo?


30

Trong các dự án của tôi nơi kho lưu trữ được chia sẻ giữa tôi và các lập trình viên khác, tôi luôn viết thông điệp cam kết ngay cả khi tôi là nhà phát triển chính.

Nhưng trong các dự án mà tôi là nhà phát triển solo làm việc trong một dự án và kho lưu trữ được lưu trữ trên máy tính xách tay cá nhân của tôi và thậm chí không được lưu trữ bởi khách hàng, do đó không ai ngoại trừ tôi sẽ thấy các cam kết, tôi vẫn nên viết cam kết tin nhắn?

Cho đến nay tôi đã viết chúng, nhưng tôi thấy rằng tôi chưa bao giờ quay lại và xem các tin nhắn cam kết của mình. Tôi dành thời gian phát triển để viết ra những tin nhắn, nhưng sau đó chúng không bao giờ được nhìn thấy nữa ngay cả với tôi.

Có bất kỳ lý do chính đáng nào để viết thông điệp cam kết với tư cách là nhà phát triển solo hay bạn chỉ nên bỏ qua chúng để ủng hộ việc tập trung vào phát triển?


14
"Tôi chưa bao giờ quay lại và xem tin nhắn cam kết của mình" lần đầu tiên bạn sẽ phải quay lại, có lẽ sẽ cung cấp cho bạn lý do chính đáng đó. Trên thực tế, đi trong đôi giày của bạn, có lẽ tôi sẽ thực hiện các cam kết im lặng cho đến khi lần quay trở lại đầu tiên xảy ra
gnat

5
"Tôi luôn viết thông điệp cam kết ngay cả khi tôi là nhà phát triển chính." Bạn nghĩ đó là bất thường? Tất nhiên , nhà phát triển chính nên viết tin nhắn, thậm chí so với các nhà phát triển khác (những người đã sẵn sàng 100% thời gian).
AlbeyAmakiir

7
Thông điệp cam kết là vàng nguyên chất khi bạn bắt đầu duy trì các phiên bản cũ hơn của phần mềm và không chỉ là phiên bản mới nhất.

Câu trả lời:


43

Đây là một lý do: Nếu bạn đột nhiên nhận ra một cái gì đó đã bị phá vỡ trong vài trăm lần cam kết cuối cùng (có thể nếu bạn cam kết ở mỗi lần chỉnh sửa nhỏ, ít khả thi hơn nếu bạn, như tôi, chỉ cam kết các ảnh chụp nhanh "ổn định"), bạn có thể dễ dàng hơn tìm nơi bạn đã chèn lỗi nếu bạn đã viết các thông báo cam kết rõ ràng, thay vì "lỗi". (Tôi tin rằng một chuỗi yêu thích của đồng nghiệp). Chắc chắn, bạn có thể đi với svn loghoặc bất cứ SCM nào bạn đang sử dụng, nhưng nó sẽ dễ dàng hơn theo cách khác.

Cũng cam kết thông điệp buộc bạn phải nghĩ chính xác những gì bạn đã làm như một thay đổi và, tôi tin rằng, tóm tắt trong tâm trí của bạn như thế nào là tốt nhất để tiếp tục cải thiện dự án.


13
+1 cho đoạn cuối. Tôi thấy rằng việc viết một thông điệp cam kết phù hợp mất khá nhiều thời gian vì tôi luôn biết lý do tại sao tôi thực hiện thay đổi.
Stephen Darlington

5
Đối với công cụ solo của tôi, tôi có thông điệp cam kết của mình trước khi tôi làm việc gì đó. Tôi làm một việc nhỏ (nhắm đến 30-45 phút ... có vợ và con ở đây!), Và cam kết. Có lẽ bạn có thể gọi nó là cam kết phát triển?
corsiKa

52

Tôi cố gắng luôn. Đã bao nhiêu lần bạn nhìn lại và nghĩ: "Đàn ông tôi đã làm gì khi tôi thực hiện thay đổi này". Tôi làm tất cả thời gian. 30 giây viết tin nhắn có thể giúp bạn tiết kiệm 20 phút công sức cố gắng ghi nhớ.


12
Nó cũng giúp khi tạo một báo cáo hàng tháng. Danh sách các thông điệp cam kết là một khởi đầu tuyệt vời cho báo cáo
mhoran_psprep

2
Vâng, và nó thực sự chỉ mất một lần khi bạn cần nó để trả lại thời gian cần thiết để nhận xét.
tzerb

20

Bạn có thành thật tin rằng chi phí đánh máy khoảng 40 đến 80 ký tự bằng tiếng Anh đơn giản là chi phí đáng kể cho một cam kết, hoặc bạn đang tìm kiếm một cái cớ để lười biếng?

Vấn đề bạn gặp phải là diễn đạt bằng tiếng Anh đơn giản tại sao bạn thực hiện thay đổi, trong trường hợp đó, bạn có thể cần xem lại mục đích của thay đổi, thậm chí đến mức tự hỏi bạn có thực sự cần phải làm điều đó không.

Lời khuyên của tôi là đừng nghĩ rằng vì bạn đang bay một mình nên bạn có thể phá vỡ quy tắc. Vẫn chuyên nghiệp mọi lúc, và thêm thông điệp cam kết có ý nghĩa. Theo ghi nhận của các reponders khác, một ngày nào đó bạn sẽ biết ơn nó.


14
  • Bạn sẽ không luôn là một nhà phát triển solo.

  • Cuối cùng bạn sẽ phá vỡ cơ sở mã của bạn và cố gắng khôi phục nó. Thông điệp cam kết tốt sẽ giúp bạn tiết kiệm hàng giờ.

  • Bạn không thể nhớ những gì bạn đã làm việc ba tuần trước, phải không?

  • Thông điệp cam kết nên rất rõ ràng. Nếu chúng không phải, thì bạn đã không hoàn thành công việc trên một nhiệm vụ hoặc một nhiệm vụ duy nhất đã trải qua hai hoặc nhiều nhiệm vụ.


7

Chắc chắn, hoặc nếu không bạn làm cho các tính năng như phân nhánh và hợp nhất khó sử dụng hơn nhiều. Và bạn sẽ muốn sử dụng chúng, ngay cả khi nhà phát triển solo.


6

Một lý do có thể là: nó buộc bạn phải suy nghĩ trừu tượng hơn về sự thay đổi bạn vừa thực hiện và thay đổi cấu trúc.

Nếu cảm thấy vô nghĩa, có lẽ chỉ cần bình luận những thay đổi lớn hoặc những thay đổi chức năng hiện có, trong trường hợp bạn đang tìm kiếm nguồn gốc của một hành vi kỳ lạ.


Thú vị để xem lại câu trả lời này. Gần đây tôi đã có một vị trí cực kỳ khó khăn: không có tin nhắn cam kết nào cả. Nhưng đó là một dự án HTML / JS khá phẳng mà tôi không thể tưởng tượng được là đang cố gắng theo dõi hồi quy. Bất kỳ nỗ lực nào dành để viết thông điệp cam kết gần như chắc chắn sẽ được chi tiêu tốt hơn ở nơi khác. (Không phải tất cả các dự án đều thuộc danh mục này!)
Steve Bennett

4

Tôi đã là người đi lại duy nhất trong dự án TXR và đã giữ ChangeLog chi tiết từ khá sớm trong dự án. Con số này dài gần 11.000 dòng và đang phát triển: http://www.kylheku.com/cgit/txr/tree/ChangeLog

(Các thông điệp cam kết trong repo chỉ là một bản sao của những gì diễn ra trong ChangeLog.)

[Chỉnh sửa năm 2016: kể từ giữa năm 2015, tôi không còn duy trì tệp ChangeLog; tuy nhiên, các thông điệp cam kết được viết theo định dạng phù hợp với các quy ước Git và ChangeLog cùng một lúc. Cùng một mức độ chi tiết là ở đó, theo cách không gây ra vấn đề hợp nhất. Một tệp ChangeLog có thể được xây dựng lại một cách cơ học từ những bình luận này.]

Có, hơn một lần tôi đã quay lại một thông điệp cam kết cũ liên quan đến một thay đổi đã phá vỡ một cái gì đó (được phát hiện với sự trợ giúp của git bisect). Thông điệp đã giúp tôi hiểu được những gì tôi đang làm.

Trong ChangeLog, bạn có thể biết khi nào một hàm, loại, macro hoặc biến toàn cục được giới thiệu lần đầu tiên và khi nào nó được chạm vào bởi các thay đổi.

Nhưng lý do chính để viết các thông điệp cam kết chi tiết như thế này khi làm việc một mình là thế này: bạn tìm thấy lỗi khi làm việc này .

Để viết một thông điệp cam kết chi tiết có lợi ích tương tự như đánh giá mã về cam kết của bạn bởi người khác. Giá trị trong đánh giá cam kết không nhiều đến nỗi ai đó đang kiểm tra mã của bạn, nhưng bạn phải giải thích các thay đổi của mình cho nhà phát triển khác.

Khi bạn cố gắng giải thích mọi thứ, đôi khi bạn thấy rằng chúng không có ý nghĩa.

Một lý do khác: bạn có thể bắt mình thực hiện một thay đổi vô ích . Bằng cách viết một bình luận cam kết chi tiết, bạn có được một cái nhìn ở mức độ cao về những gì bạn đang làm, và đôi khi bạn phải đối mặt với thực tế rằng đó không phải là một thay đổi tốt.

Đôi khi tôi đã thực hiện các thay đổi, khi đang viết mục ChangeLog, tôi nhận ra rằng đây sẽ là một git reset --hard(vứt bỏ những thay đổi vô dụng này) chứ không phải là git commit -a.


3

Mặc dù bạn chưa bắt gặp nhu cầu xem tin nhắn cam kết của mình nhưng bạn có thể rất biết ơn họ trong tương lai. Bạn nên tiếp tục viết chúng ngay cả cho chính mình. Có nhiều lý do chúng có thể hữu ích sau này (Bạn quên tại sao bạn lại thêm một tính năng, xác định vị trí các tệp bị thiếu, v.v.)

Đây là một câu hỏi liên quan đến mục đích của các thông điệp cam kết: Tại sao tôi nên viết một thông điệp cam kết


3

Tôi luôn cam kết với một thông điệp có ý nghĩa về những thay đổi và tôi thường xuyên làm như vậy với những thay đổi gia tăng.

Đây có phải luôn luôn là điều hữu ích nhất? Không, không có vấn đề trong việc làm như vậy. Nếu bạn cần quay lại giai đoạn trước trong tiến trình, tin nhắn của bạn sẽ cho bạn biết bạn đang ở đâu và bạn đã làm gì. Nó cũng có thể được sử dụng để theo dõi tiến độ của một dự án. Đối với việc nó được xem là một sự lãng phí thời gian, phải mất 30 giây để ghi lại một câu thực sự có hậu quả?


3

Tôi không thấy bất kỳ sự khác biệt nào liên quan đến các thông điệp cam kết cho dù bạn có làm việc trong nhóm hay không. Bạn nhớ những gì bạn đã làm ở đây hoặc ở đó chỉ trong một thời gian giới hạn, và sau đó cũng giống như khi người khác viết nó. Vì vậy, bạn nên viết tin nhắn tốt như bạn muốn cho người khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.