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ốiSSH
tới máyUbuntu.
- Đã có
Repository
trênUbuntu
(Bài viết sử dụngFirstProjectGit
).
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
- 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.
- 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.
- 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
- 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ị:
- 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.