Bài 9. Thao tác Merge và Pull Request

Giới thiệu

Trong bài viết này chúng ta sẽ tập trung vào khả năng tích hợp code(gộp code) từ nhánh staging sang nhánh production, nó giống như việc chúng ta phát triển tính năng trên một nhánh riêng sau đó đưa tính năng đó vào nhánh làm việc chung.

Chuẩn bị

  • Đã hoàn thành bài trước.
  • Terminal kết nối SSH tới máy Ubuntu.
  • Đã có Repository trên Ubuntu (Bài viết sử dụng FirstProjectGit).

Nội dung

Chúng ta tạo ra nhánh production, nơi đây được coi là nhánh chứa mã nguồn chung của dự án, các thành viên trong nhóm sẽ cùng nhau phối hợp làm việc, đẩy mã nguồn của những chức năng hoàn thiện tới nhánh production.

Tạo nhánh production từ nhánh staging:

# Chuyển sang làm việc tại không gian của nhánh staging
git checkout staging

# kiểm tra danh sách tệp tin trên không gian làm việc của nhánh staging
ls -al

# tạo nhánh production từ nhánh staging
git branch production

# Xem danh sách nhánh
git branch

 

Merge code

Các thao tác trong phần này sẽ thực hiện ở local repository first_repo

  1. Tạo commit trên nhánh staging

Giả sử, trên nhánh staging, chúng ta code hùng hục để tạo ra chức năng quản lý giỏ hàng, code của chúng ta đã sẵn sàng tạo commit và đưa tới môi trường production, sẵn sàng cho người dùng sử dụng:

git checkout staging

echo "implement new feature: manage cart" > feature.txt

# xem nội dung tệp tin
cat feature.txt

# Tạo commit mới
git add feature.txt
git status
git commit -am "new feature: manage cart"

 

Bạn có thể sử dụng thêm lệnh git log để kiểm tra commit vừa được tạo ra.

  1. Thực hiện merge code từ nhanh staging sang nhánh production
# chuyển sang không gian làm việc của nhánh production
git checkout production

# Kiểm tra danh sách tệp tin trên không gian làm việc của production
ls -al

# Thực hiện lấy code từ nhánh staging về nhánh production
git merge staging

ls -al

 

Kết quả của câu lệnh merge sẽ đưa các commit từ nhánh staging tới nhánh hiện tạiproduction).

Bạn hãy sử dụng thêm lệnh git log để đối chiếu với danh sách lịch sử commit có trong nhánh production với nhánh staging

Pull Request

Pull Request là chức năng của GitHub cung cấp, một cách làm việc nhóm hữu hiệu sẽ sử dụng PR để code có thể được đánh giá, đảm bảo chất lượng mã nguồn của dự án.

Để chuẩn bị, trước hết, chúng ta hãy đẩy những thay đổi ở 2 nhánh staging và production trong local tới remote.

git checkout staging
git push origin staging
git checkout production
git push origin production

 

Tương tự như kịch bản ở phần Merge code, bạn rất năng suất, trên nhánh staging, bạn đã rất nhanh viết được mã nguồn cho chức năng mới payment gate (cổng thanh toán), giờ bạn cần tạo Pull Request để một con người khác trong bạn sẽ đứng ra công tâm đánh giá mã nguồn mà bạn đã viết trước những dòng mã nguồn này được tích hợp và nhánh chung production.

  1. Tạo comit và push trên nhánh staging

Tạo commit cho tính năng payment gate

git checkout staging

echo "very fast, implement new feature: payment gate" > feature_payment.txt

# xem nội dung tệp tin
cat feature_payment.txt

# Tạo commit mới
git add feature_payment.txt
git status
git commit -am "new feature: payment gateway"

# kiểm tra danh git history
git log

# đẩy commit tới remote
git push origin staging

 

  1. Tạo PR trên github

Bạn vừa mới thêm tính năng payment gate ở nhánh staging, giờ là lúc bạn tự tin nhất, tạo PR trên github mong muốn đưa các commit từ nhánh staging tới nhánh production.

Mở GitHub và truy cập FirstProjectGit, chọn menu Pull Request, sau đó ấn nút New pull request

Trong màn hình Comparing changes, đầu của mũi tên, ở phần compare chọn nhánh staging, phía mũi tên hướng tới, base sẽ được chọn là production. Sau khi chọn được 2 nhánh, chúng ta sẽ thấy các thông tin cho sự thay đổi từ nhánh staging tới nhánh production.

  • Màu xanh đại diện cho mã nguồn, tệp tin được thêm mới vào git
  • Màu đỏ đại diện cho mã nguồn, tệp tin bị xóa bỏ khỏi git

Tiếp đó, ấn nút Create pull request

 

Màn hình sẽ chuyển sang phần thêm các thông tin khác: tên của PR, mô tả cho PR, thành viên tham gia review, gán công việc merge pull request cho thành viên nào,…

 

Sau đó ấn nút Create pull request, màn hình thông tin của PR hiển thị:

  1. Merge Pull Request

PR đã được tạo, giờ là con người khác của chúng ta lộ diện, bạn sẽ săm soi từng dòng mã nguồn trước khi thực hiện merge những thay đổi từ nhánh staging tới nhánh production

Trong repo FirstProjectGit trên Github, chọn menu Pull request để xem danh sách các PR và sau đó ấn vào PR được tạo ở bước trước:

 

Màn hinh chi tiết của PR hiện ra, bạn hãy săm xoi tiêu đề và nội dung của PR(commit, files changed)

Sau một hồi miệt mài review code, bạn thấy code của bạn viết ok đó, bạn sẽ thực hiện merge pull request bằng cách ấn vào nút Merge pull request -> xác nhận merge bằng cách ấn nút confirm merge

Sau khi merge thành công bạn hãy kiểm tra mã nguồn trên nhánh production đã có code mới từ staging hay chưa.


Tác giả: Đỗ Thiên Giang

Chú ý: Tất cả các bài viết trên TEDU.COM.VN đều thuộc bản quyền TEDU, yêu cầu dẫn nguồn khi trích lại trên website khác.

Lên trên