programming:github_rule
Khác biệt
Đây là những khác biệt giữa hai phiên bản của trang.
Phiên bản trước của cả hai bênPhiên bản trướcPhiên bản sau | Phiên bản trước | ||
programming:github_rule [2012/11/20 20:03] – laser | programming:github_rule [2020/06/19 00:59] (hiện tại) – laser | ||
---|---|---|---|
Dòng 6: | Dòng 6: | ||
===== Địa chỉ kho code ===== | ===== Địa chỉ kho code ===== | ||
- | * NukeViet Repositosy: https:// | + | * NukeViet Repositosy: https:// |
===== Nguyên tắc phát triển code ===== | ===== Nguyên tắc phát triển code ===== | ||
- | * Tất cả mọi người dù là người quản lý kho code, thành viên đội code hay những người đóng góp thuộc các tổ chức, công ty, các cá nhân... đều có thể đóng góp phát triển code. | + | * Tự do đóng góp: Tất cả mọi người dù là người quản lý kho code, thành viên đội code hay những người đóng góp thuộc các tổ chức, công ty, các cá nhân... đều có thể đóng góp phát triển code một cách tự do. |
- | * Việc phát triển code phải thực hiện trên kho code riêng, không được code trực tiếp trên kho code chính của NukeViet (kể cả tài khoản của người quản lý kho code). | + | * Ghi công đóng góp: Việc phát triển code phải thực hiện trên kho code riêng, không được code trực tiếp trên kho code chính của NukeViet (kể cả tài khoản của người quản lý kho code). |
+ | * Kiểm duyệt chéo: Những người quản lý kho code sẽ chịu trách nhiệm việc kiểm duyệt code được đóng góp vào kho code chính. (Nên hạn chế việc tự duyệt code của mình trên kho code chính). | ||
===== Quy trình tham gia phát triển code ===== | ===== Quy trình tham gia phát triển code ===== | ||
Dòng 17: | Dòng 18: | ||
* Những người quản lý kho code sẽ kiểm tra và phê duyệt các đóng góp này. Nếu đóng góp chưa đạt hoặc cần chỉnh sửa thì những người quản lý có thể viết góp ý ngay tại yêu cầu đóng góp và trả lại để người đóng góp chỉnh sửa theo góp ý và gửi lại sau khi đã sửa xong. Quá trình này diễn ra cho đến khi yêu cầu đóng góp được chấp nhận, đóng góp đó sẽ được trộn (merge) vào các nhánh phù hợp với dự án được đóng góp. | * Những người quản lý kho code sẽ kiểm tra và phê duyệt các đóng góp này. Nếu đóng góp chưa đạt hoặc cần chỉnh sửa thì những người quản lý có thể viết góp ý ngay tại yêu cầu đóng góp và trả lại để người đóng góp chỉnh sửa theo góp ý và gửi lại sau khi đã sửa xong. Quá trình này diễn ra cho đến khi yêu cầu đóng góp được chấp nhận, đóng góp đó sẽ được trộn (merge) vào các nhánh phù hợp với dự án được đóng góp. | ||
* Để tăng hiệu suất quản lý, toàn bộ công việc chỉnh sửa, xử lý xung đột... trước khi gửi đóng góp lên sẽ do người đóng góp xử lý. Người quản lý kho code sẽ chỉ việc kiểm tra và trả lời chứ không phải mất công để sửa lại code được đóng góp. | * Để tăng hiệu suất quản lý, toàn bộ công việc chỉnh sửa, xử lý xung đột... trước khi gửi đóng góp lên sẽ do người đóng góp xử lý. Người quản lý kho code sẽ chỉ việc kiểm tra và trả lời chứ không phải mất công để sửa lại code được đóng góp. | ||
+ | |||
+ | ==== Gợi ý cho các doanh nghiệp tham gia phát triển code ==== | ||
+ | Nếu doanh nghiệp của bạn có nhiều nhân viên tham gia phát triển code thì thay vì tham gia dự án dưới tư cách của cá nhân, các bạn có thể tham gia phát triển dự án dưới tư cách của doanh nghiệp (trường hợp doanh nghiệp trả lương cho nhân viên để phát triển code của NukeViet). Dưới đây là hướng dẫn: | ||
+ | * Đại diện doanh nghiệp đăng ký tài khoản code, tạo tổ chức mang tên doanh nghiệp và add các thành viên vào tổ chức của mình. | ||
+ | * Đại diện doanh nghiệp fork dự án về kho code của doanh nghiệp. | ||
+ | * Các thành viên trong doanh nghiệp fork dự án từ kho code của doanh nghiệp về kho code của cá nhân. Nhân viên doanh nghiệp Pull Request vào kho code của doanh nghiệp sau đó doanh nghiệp Pull Request vào kho code chung của NukeViet. | ||
+ | |||
+ | Theo hình thức này, một cá nhân vừa có thể tham gia trực tiếp vào dự án của NukeViet (phát triển ngoài giờ làm việc) và tham gia dưới tư cách là nhân viên của doanh nghiệp (phát triển trong giờ làm việc). | ||
+ | |||
+ | ==== Các chú ý ==== | ||
+ | * Trong quá trình làm phải commit thường xuyên lên nhánh develop, khi xong xuôi thì merge/ | ||
===== Cấu trúc tổ chức kho code ===== | ===== Cấu trúc tổ chức kho code ===== | ||
- | * Cấu trúc tổ chức kho code của NukeViet tuân theo [[http:// | + | Cấu trúc tổ chức kho code của NukeViet tuân theo [[http:// |
- | * Hai nhánh (branch) đi suốt chiều dài phát triển code là Master và Develop. Trong đó: | + | |
- | | + | **Nhánh chính |
- | * Nhánh Develop | + | |
- | * Ngoài 2 nhánh trên, kho code còn có các nhánh | + | Nhánh |
- | * Feature branches - Các nhánh | + | |
- | * Release branches - Các nhánh hỗ trợ phát hành phiên bản | + | **Nhánh release branches** |
- | | + | |
+ | (ví dụ đặt tên: nukeviet3.4, | ||
+ | |||
+ | Khi thông báo phát hành 1 phiên bản beta mới từ nhánh develop thì mới cần tạo 1 nhánh để duy trì sau này. | ||
+ | |||
+ | Nhánh hỗ trợ vá lỗi trong quá trình phát triển phiên bản đang phát hành. Hạn chế việc phát triển tính năng mới cho các nhánh này. | ||
+ | |||
+ | Code được trộn vào trong các nhánh này có thể bao gồm thêm các tính năng mới, nhưng cần được nâng cấp tự động không gây ảnh hưởng đến site khi nâng cấp. Nếu tính năng mới ảnh hưởng đến giao diện của site thì cần chuyển sang phiên bản tiếp theo. | ||
+ | |||
+ | Mỗi nhánh sẽ được duy trì từ lúc phát hành đế lúc kết thúc không nhỏ hơn 2 năm. | ||
+ | |||
+ | **Nhánh Develop** | ||
+ | |||
+ | Là nhánh được cập nhật liên tục các đóng góp của tất cả mọi người ở mọi thời điểm. Nhánh này sẽ tiếp nhận các đóng góp của mọi người gửi đến thông qua việc tiếp nhận Pull Request cũng như tiếp nhận việc nhập các nhánh khác vào. | ||
+ | |||
+ | Khi nhánh Develop | ||
+ | |||
+ | * Các tính năng đã được phát triển mới so với bản trước. | ||
+ | * Các tính năng cần hòan thiện khi phát hành. | ||
+ | * Các công việc liên quan đến khi phát hành chính thức: Tài liệu, hướng dẫn nâng cấp … | ||
+ | |||
+ | Trong quá trình | ||
+ | |||
+ | **Nguyên tắc phát triển chung** | ||
+ | |||
+ | Nguyên tắc để được trộn vào các nhánh | ||
+ | |||
+ | | ||
+ | * Nếu là lỗi xác định lỗi này xẩy ra trên các phiên bản nào. | ||
+ | |||
+ | Nếu là sửa lỗi, thì tạo 1 Hotfix branches | ||
+ | |||
+ | Việc phát triển tính năng mới cũng làm tương tự như việc sửa lỗi. | ||
+ | |||
+ | |||
+ | ===== Thống kê kho code ===== | ||
+ | ==== Nguyên tắc thống kê ==== | ||
+ | Xem [[programming: | ||
+ | |||
+ | ===== Tham khảo ===== | ||
+ | |||
+ | ==== Các bài viết liên quan ==== | ||
+ | * [[programming: | ||
+ | |||
+ | ==== Chú ý ==== | ||
+ | * Git-flow là tài liệu từ năm 2010, thường phù hợp với các dự án quy củ. Các dự án đơn giản hơn được khuyến khích sử dụng Github flow để thay thế. | ||
- | (Tài liệu | + | ==== Nguồn bên ngoài ==== |
+ | * Git-flow - Một mô hình phân nhánh git thành công: http:// | ||
+ | * Github flow - Mô hình phân nhánh |
programming/github_rule.1353416639.txt.gz · Sửa đổi lần cuối: 2012/11/20 20:04 (sửa đổi bên ngoài)