Cách làm việc rẽ nhánh với Git
Rất chuẩn bài khi bạn muốn tách nhánh để làm việc độc lập rồi mới gộp vào main
sau 👏. Dưới đây là các bước cơ bản để tạo nhánh mới từ main
, giữ nguyên mọi thay đổi hiện tại, và làm việc an toàn:
✅ Bước 1: Tạo nhánh mới từ main
Lệnh này sẽ tạo nhánh mới
feature-big-update
từmain
và đồng thời chuyển sang nhánh đó luôn.
✅ Bước 2: Commit các thay đổi đang có (nếu chưa commit)
✅ Bước 3: Tiếp tục phát triển trên nhánh mới
Bạn làm việc bình thường trên feature-big-update
.
✅ Bước 4: Khi hoàn tất, muốn gộp vào main
-
Chuyển về lại
main
: -
Kéo mới nhất (tránh conflict nếu team làm việc chung):
-
Gộp nhánh:
✅ Bước 5 (tuỳ chọn): Xoá nhánh đã gộp nếu không cần nữa
Nếu bạn đã có thay đổi rồi mới nhớ cần tạo nhánh, đừng lo, vẫn làm được:
💡 Tình huống: đang ở main
và đã có thay đổi chưa commit
Bạn có thể:
Nó sẽ không mất thay đổi nào, chỉ là chuyển sang nhánh mới để commit lại lịch sử cho rõ ràng.
Tiếp đó, hãy đến với mục tiếp theo là để môi trường Production chạy với nhánh mới
Để môi trường Production (hoặc Staging) chạy với nhánh mới
Ok, mình hướng dẫn bạn từng bước nhé! Giả sử bạn đang SSH vào VPS rồi và đang trong thư mục project Git.
Bây giờ bạn muốn chuyển từ main
sang feature-big-update
và pull code về, thì làm như sau:
1. Check các branch hiện có từ remote để đảm bảo branch feature-big-update
tồn tại:
(bạn sẽ thấy kiểu origin/feature-big-update
trong danh sách nếu nó đã push lên remote)
2. Nếu branch đã tồn tại rồi thì checkout sang branch đó:
Nếu trên VPS chưa từng checkout nhánh này trước đó (branch mới hoàn toàn), thì dùng:
Lệnh
-b
nghĩa là tạo local branchfeature-big-update
từ remoteorigin/feature-big-update
.
3. Sau đó pull code mới nhất về:
Tóm lại nếu gọn thì quy trình là:
hoặc nếu đã có local branch thì:
Tiếp đó, khi chương trình chạy ổn cũng là lúc ta chuyển mọi thứ về Main để hợp nhất nhánh trước khi làm thêm tính năng mới, đây là điều thường thấy ở các nền tảng giao diện đồ họa của Git như github, gitlab
Các bước chuẩn bị trước khi merge và checkout về main
:
-
Đảm bảo rằng tính năng trong branch hiện tại đã hoàn thành và kiểm tra ổn:
-
Kiểm tra kỹ code trên branch
feature-big-update
đã sẵn sàng để merge. -
Nếu cần, có thể chạy lại các test case hoặc kiểm tra chức năng liên quan.
-
-
Commit và push code của bạn lên remote:
-
Đảm bảo rằng tất cả thay đổi đã được commit:
-
-
Checkout về
main
và kéo latest code:-
Sau khi push xong, bạn có thể checkout về nhánh
main
:
-
-
Pull latest từ remote để đảm bảo không bị trễ (nếu có người khác đã làm việc trên
main
): -
Merge nhánh
feature-big-update
vàomain
:-
Thực hiện merge nhánh tính năng vào nhánh
main
:
Nếu có conflict, bạn cần giải quyết và commit lại.
-
-
Push merge về remote: Sau khi merge thành công và kiểm tra, push lại lên remote:
Nếu muốn reset về remote:
Nếu bạn muốn reset nhánh main
trên VPS để đồng bộ lại với remote (tránh tình trạng bị lộn xộn hoặc code cũ), bạn có thể làm như sau:
-
Reset local
main
để giống với remote (nếu có sự khác biệt và bạn muốn bỏ qua tất cả các thay đổi local): -
Sau đó bạn có thể checkout lại nhánh tính năng mới để tiếp tục làm việc:
Chắc bạn đã hiểu cách làm rồi đúng không? Cần mình hỗ trợ thêm gì nữa không, ví dụ như quản lý merge conflict hoặc cách viết rebase cho sạch code?