wiki

View on GitHub

Git & Git Flow

Cơ bản:

Tuân theo mô hình gitflow Có thể ghi nhớ nhanh mô hình này bằng cheatsheet

Có thể dùng Git Client để dễ dàng hơn trong việc quản lý:

Quản lý các file trên git

Các file cần ignore:

Các file không được ignore:

Quản lý branch:

Làm trên branch riêng, ko push trực tiếp lên master, develop. Đặt tên theo chuẩn gitflow:

Gửi Pull Request

Tất cả các chức năng cần được dev trên branch riêng, để merge vào develop hoặc master cần gửi pull request. Chỉ Team leader có thể push develop/master khi thực sự cần thiết, gặp trong tình huống gấp gáp。

Title của pull request:

Đặt title của Pull Request tương ứng với chức năng hoặc phần sửa chữa được thêm vào. Có thể add thêm một số tiền tố liên quan tới các hệ thống khác để dễ quản lý.

Ví dụ:

[RM158]Create new TIL Với RM158 có nghĩa là redmind task id 158, để member dễ hiểu.

Description của pull request:

Label của pull request.

Thời điểm gửi pull request:

  1. Khi kết thúc việc dev một task được assign. Chú ý không gửi sourcode của nhiều task trong cùng một pull request. (Gây khó khăn trong việc review, sửa đổi và merge pull request).

  2. Kết thúc buổi làm việc. Trong trường hợp chưa làm xong nhưng đã kết thúc buổi làm việc của mình, trước khi về, cần commit và push tất cả lên branch riêng trên remote repository ( để người khác có thể tiếp tục công việc nếu cần gấp, hoặc trong trường hợp hôm sau bạn nghỉ, bạn có sự cố về máy móc ….). Tạo một pull request và thêm tiền tố [WIP] có nghĩa là work in progress ( đang thực hiện) vào title của pull request để toàn bộ team member biết là bạn đang hoàn thiện chức năng đó và chưa hoàn thành, chưa cần review.

  3. Trước khi bạn ra về hoặc dừng công việc. Tương tự như mục 2. Kết thúc buổi làm việc. Bạn cần gửi pull-request khi bạn gặp vấn đề đột xuất không tiếp tục được công việc nữa, hoặc kết thúc làm việc (đối với parttime dev).

Check list khi gửi pull request.

  1. Trước khi gửi pull-request, nhớ merge từ develop vào branch bạn muốn gửi pull-request hoặc rebase để cập nhật code mới nhất từ develop, để giảm thiểu việc khi bạn gửi pull-request lên thì gặp conflict với develop branch mà thành viên khác phải nhắc bạn giải quyết conflict gây tốn thời gian cho các member khác.

  2. Kiểm tra xem các file có trong pull request có file nào thừa thãi, chứa source code không cần thiết hay không?

  3. Kiểm tra xem các file có trong pull request còn các lệnh liên quan tới việc debug hay không? Ví dụ: lệnh dd() trong Laravel, console.log(). Cần xoá các lệnh này đi để các chức năng hoạt động chính xác.

  4. Trong trường hợp dự án có tích hợp CI server, cần kiểm tra xem kết quả chạy của CI server có success hay không, nếu có lỗi cần fix.
  5. Assign những người cần review vào phần reviewer của pull request để họ biết mà ưu tiên review issues cho bạn.
  6. Trong trường hợp, issues cần review gấp, add high priority label vào PR để member dễ theo dõi, và alert qua Slack cho member.

Lưu ý:

  1. Với một số tình huống, khi việc review code trong team diễn ra khá lâu, mà bạn cần làm một task có chứa nội dung bị phụ thuộc bởi 1 pull request chưa được merge thì có thể checkout từ branch của pull request phụ thuộc đó, tiếp tục làm và gửi pull request. Lưu ý khi gửi pull request có commit của pull request trước đó chưa merge vào develop hoặc master thì cần comment trong description của pull request như ví dụ dưới đây.

Review pull request:

Merge pull request: