Mấy hôm nay team mình đang cãi nhau vụ chọn quy trình làm việc với Git cho dự án sắp tới. Dự án thì nhỏ thôi có bốn người, mà mỗi đứa một ý làm rối tung cả lên. Người thì thích kiểu đơn giản đẩy thẳng lên main, đứa khác lại khăng khăng đòi áp dụng Git flow chuẩn chỉnh cho chuyên nghiệp. Nhìn sơ đồ Git flow thấy rườm rà quá trời nào là develop, feature, release rồi hotfix các kiểu. Sợ áp dụng vào xong thành ra phức tạp hóa vấn đề, mất thời gian fix conflict còn hơn là code. Căng thật đấy. Bác nào có kinh nghiệm vụ này cứu mình với. Dự án nhỏ ít người thì nên dùng mô hình nào cho gọn nhẹ mà vẫn kiểm soát được mã nguồn nhỉ.
Lăn tăn áp dụng Git flow vào dự án nhóm thế nào.
Thảo luận (14 bình luận chính)
Vụ này đợt trước team mình cũng cãi nhau suốt, đúng là dự án nhỏ mà đú Git flow chuẩn chỉnh thì khác gì dao mổ trâu đi cắt tiết gà, chỉ tổ phức tạp hóa vấn đề. Cứ 4 người ngồi lại phang thẳng GitHub Flow hoặc kiểu feature branch đơn giản, merge thẳng vào main khi test xong là đẹp nhất, vừa nhanh gọn lại không lo conflict lòi mắt. Làm kinh doanh hay làm tech thì tốc độ ra sản phẩm và test thị trường vẫn là chân ái, quy trình nào nhẹ đầu thì chiến thôi bác ạ.
Dự án có 4 người mà đú Git Flow chuẩn chỉnh thì đúng là tự hành hạ nhau thật, vẽ ra lắm nhánh xong merge mệt nghỉ vì code chồng chéo. Team nhỏ thế này cứ quất GitHub Flow hoặc Trunk-based Development là đẹp nhất, cứ có tính năng mới thì tạo branch ngắn, xong PR thẳng vào main luôn cho nhanh gọn. Làm vậy vừa đỡ rối rắm vừa học được cách review code thực tế, sau này đi làm ở công ty quen rồi mới cần nâng cấp lên mấy quy trình phức tạp hơn.
Dự án có 4 người mà đú Git Flow chuẩn chỉnh thì khác gì dùng dao mổ trâu đi cắt tiết gà, chỉ tổ phức tạp hóa vấn đề rồi cãi nhau thêm. Đội hình này cứ áp dụng mô hình GitHub Flow rút gọn là chuẩn bài nhất, vừa nhanh gọn vừa không sợ rối code. Cụ thể cứ làm theo 3 bước này: tạo nhánh `feature` riêng cho từng tính năng nhỏ, xong việc thì tạo Pull Request để người khác review rồi mới merge thẳng vào `main`. là deploy trực tiếp từ `main` lên môi trường chạy thật, đảm bảo mượt mà không đau đầu.
Về vụ này thì cách tối ưu nhất là chuẩn bị kỹ từ đầu. Nếu làm online thì cứ vào thẳng cổng dịch vụ công chính thức, làm theo đúng biểu mẫu là tầm 3-5 ngày xong thôi.
Dự án có 4 người mà đú Git Flow chuẩn chỉnh thì đúng là tự vẽ dây buộc mình, rườm rà không cần thiết. Team nhỏ thế này cứ áp dụng GitHub Flow hoặc Gitlab Flow là đẹp nhất, vừa nhanh gọn vừa đỡ mất công giải quyết conflict mệt nghỉ. Cứ chốt nhanh 2 bước cốt lõi này mà làm: tạo một nhánh `main` để chạy production và mỗi đứa tự táng một nhánh `feature/*` riêng khi code tính năng mới. Xong xuôi thì tạo Pull Request để người khác review rồi mới merge vào `main`, đảm bảo vừa chuyên nghiệp mà không bị rối tung.
Vụ này đợt trước team 3 đứa nhà mình cũng cãi nhau một trận chí mạng, rút ra chân lý là team dưới 5 người mà đú Git flow chuẩn chỉnh thì chỉ có tự bóp dái. Đám `develop`, `release`, `hotfix` làm loãng hết cả code base trong khi chỉ cần 1 con `main` với mỗi tính năng vứt ra một nhánh `feature` riêng là đủ sống rồi. Cứ bảo "cho chuyên nghiệp" chứ bao giờ dự án phình to lên, quản lý chục người hẵng hay, chứ team bé tí thế này cứ cái gì nhanh gọn, ít bước merge mà phang thôi chủ thớt ạ.
Team 4 người mà đú Git Flow chuẩn chỉnh thì khác gì lấy dao mổ trâu đi giết gà, chỉ tổ tự chuốc lấy mấy cái conflict lòi mắt với ngồi gõ lệnh mỏi tay thôi chủ thớt ạ. Điểm mấu chốt bạn cần nhớ là quy trình sinh ra để phục vụ dự án chứ không phải để làm cảnh hay khoe mẽ, dự án nhỏ thì cứ GitHub Flow hoặc Trunk-based thẳng tiến cho lành. Cứ bảo anh em làm cái nhánh `dev` với vài nhánh `feature` nhỏ lẻ là đủ mượt rồi, bao giờ team lên chục người hay có release bản thương mại phức tạp hãy tính tiếp.
Team có 4 người mà đú Git flow chuẩn chỉnh thì khác gì dao mổ trâu đi cắt tiết gà, chỉ tổ phức tạp hóa vấn đề rồi cãi nhau thêm. Dự án nhỏ gọn thì cứ chơi kiểu GitHub Flow hoặc Gitlab Flow cho lành, cứ `feature branch` xong tạo Pull Request rồi merge thẳng vào `main` là đẹp. Làm kinh doanh hay làm tech thì nguyên tắc tối thượng vẫn là tối ưu tốc độ và dòng tiền, code cũng thế, cái nào nhanh gọn, ít bug, release lẹ tay ra sản phẩm mới là vua.
Dự án có 4 người mà đú theo Git Flow chuẩn chỉnh thì đúng là tự mua dây buộc mình, sớm muộn gì cũng rối tung lên vì suốt ngày đi giải quyết conflict với merge nhánh. **Điểm mấu chốt bạn cần nhớ là** team nhỏ thế này cứ áp dụng GitHub Flow hoặc Gitlab Flow cho lành, tất cả cứ quất chung vào một nhánh `main` hoặc tạo nhánh tính năng ngắn hạn rồi Pull Request là đủ chuyên nghiệp rồi. Đừng phức tạp hóa vấn đề làm gì chỉ để đổi lấy cái danh "làm việc chuẩn enterprise", tốn thời gian fix bug merge còn hơn là code thật.
Dự án có 4 người mà đú theo Git Flow chuẩn chỉnh thì chỉ có tự vẽ dây trói mình, làm xong mấy cái branch `develop`, `release`, `hotfix` chắc hết bố nó thời gian code. Team nhỏ thế này cứ quất **GitHub Flow** hoặc **Trunk-based Development** là nhàn nhất: cứ tạo feature branch từ `main`, code xong làm cái Pull Request cho người khác review rồi merge thẳng lên `main` luôn. Cái sơ đồ Git Flow nhìn thì hoành tráng nhưng thực tế áp vào team ít người chỉ tổ rối rắm, sinh ra lắm bước thừa thãi cản trở tiến độ thôi bác ạ.
Đúng là từ hồi áp dụng Thông tư mới (hình như là Thông tư 22/2021/TT-BGDĐT), ...
Tại chủ đề: Cách tính điểm trung bình môn học kỳ 1 chuẩn xác ra sao.Slug hiểu đơn giản chính là phần chuỗi URL nằm sau tên miền của bạn, ví dụ nh...
Tại chủ đề: Slug wordpress là gì và ứng dụng thực tế thế nào?Lo lắng thế là chuẩn đấy chủ thớt ơi, mở quán cà phê kèm ăn vặt mà không có g...
Tại chủ đề: Thủ tục làm đăng ký kinh doanh hộ cá thể ra sao.Đồng cảm với chủ thớt thật sự, ngày trước ra trường mình cũng mù tịt tiếng An...
Tại chủ đề: Mất gốc thì áp dụng cách học tiếng anh hiệu quả thế nào.Làm project chung với đám bạn thì cứ quăng thẳng cái link repo rồi `git clone...
Tại chủ đề: Đang phân vân giữa Clone với Fork git là gì để bắt đầu code nhóm thế nào.