Series Làm chủ Bitbucket | Bài 2: Branching Model & Pull Requests - Quy trình "bất khả xâm phạm"
Khi làm việc nhóm, nếu ai cũng git push thẳng lên branch main, hệ thống sẽ sập chỉ sau 1 giờ. Chúng ta cần một quy trình phân quyền:
main: Code đã chạy ổn định, sẵn sàng deploy.develop: Nơi các kỹ sư hợp nhất các tính năng mới để test.feature/tên-tính-năng: Nơi từng cá nhân "múa" code riêng.
1. Thiết lập Branching Model trên Bitbucket
Trước khi code, hãy vào Bitbucket: Repository Settings -> Branching model.
Tại đây, hãy cấu hình các nhánh chính (main, develop). Việc này giúp Bitbucket hiểu được cấu trúc của bạn và tự động gợi ý khi bạn tạo Pull Request.
2. Quy trình "Bất khả xâm phạm" với Pull Request
Đừng bao giờ để dev "được phép" push trực tiếp vào main. Hãy dùng Branch Permissions (trong mục Settings của repo):
- Khóa branch
mainvàdevelop. - Chỉ cho phép thay đổi thông qua Pull Request (PR).
- Yêu cầu ít nhất 1 người (thường là Leader hoặc đồng nghiệp) Review và Approve thì mới được merge.
3. Thực hành workflow: Quy trình 5 bước
Đây là "bài kinh" mà kỹ sư nào cũng phải thuộc lòng:
- Checkout nhánh mới:
git checkout develop
git pull origin develop
git checkout -b feature/afc-login-module
- Code và Commit: (Code xong xuôi...)
git add .
git commit -m "feat: add login validation for AFC"
git push -u origin feature/afc-login-module
- Tạo Pull Request (Trên web Bitbucket):
- Bấm vào nút Create Pull Request.
- Chọn Source là
feature/afc-login-modulevà Destination làdevelop. - Tag đồng nghiệp vào: "Hiếu, check giúp mình logic validation này nhé".
- Code Review: Đồng nghiệp vào xem code, để lại comment, bạn sửa code (tự động cập nhật vào PR).
- Merge: Khi đã được Approve, Leader bấm nút Merge. Xong!
4. Giải quyết xung đột (Conflict) - Nỗi ác mộng của dân Backend
Nếu đồng nghiệp của bạn cũng sửa cùng một file đó và đã merge trước, khi bạn tạo PR, Bitbucket sẽ báo "Conflict".
Cách xử lý chuyên nghiệp: Đừng cố sửa trên web! Hãy làm trên máy local:
git checkout develop
git pull origin develop
git checkout feature/afc-login-module
git merge develop
# Bây giờ Git sẽ báo file nào bị conflict. Hãy mở VS Code lên, chọn "Accept Incoming Changes"
git add .
git commit -m "fix: resolve conflicts"
git push origin feature/afc-login-module
Sau khi push xong, PR trên Bitbucket sẽ tự động chuyển trạng thái thành "Ready to merge".
Tổng kết Bài 2
Pull Request không chỉ là nơi để merge code, nó là "phòng họp" của các kỹ sư. Đây là nơi bạn giải thích logic, nhận phản hồi và đảm bảo chất lượng code trước khi nó được deploy xuống các trạm Metro.
All Rights Reserved