Danh sách bài viết trong series Học Git cơ bản: làm chủ quản lý mã nguồn
- Bài 1: Khởi Đầu Với Git – Cài Đặt Và Cấu Hình Cơ Bản
- Bài 2: Khám Phá Kho Lưu Trữ – Tạo Và Khởi Động Repository
- Bài 3: Git Commit Như Siêu Nhân – Lưu Lại Mọi Thay Đổi
- Bài 4: Git history – Xem Lịch Sử Và Undo
- Bài 5: Git branch – Làm Việc Với Branch
- Bài 6: Git Remote – Kết Nối Với GitHub
- Bài 7: Hợp Tác Đỉnh Cao – Resolve Conflict Như Pro
Bước 1: Hiểu Về Git branch Nhánh – “Đường Cao Tốc” Của Git
Nhánh (branch) trong Git giống như “đường cao tốc” song song: bạn có thể thử nghiệm tính năng mới mà không ảnh hưởng đến nhánh chính (master
hoặc main
). Mặc định, Git tạo nhánh master
khi bạn khởi động repo. Hãy kiểm tra nhánh hiện tại trong my-first-repo
(từ bài trước):
git branch
Bạn sẽ thấy:
* master
Dấu *
chỉ nhánh bạn đang đứng. Mình từng nghĩ nhánh phức tạp, nhưng hóa ra nó siêu tiện – như làm việc trên “bản sao” mà không lo hỏng bản chính!
Bước 2: Tạo Nhánh Mới – “Mở Đường Mới”
Tạo nhánh để thử tính năng mới, ví dụ: thêm “feature” vào hello.txt
. Tạo nhánh feature-greeting
:
git branch feature-greeting
Kiểm tra lại:
git branch
Kết quả:
feature-greeting
* master
Nhánh mới đã có, nhưng bạn vẫn ở master
. Chuyển sang nhánh feature-greeting
:
git checkout feature-greeting
Hoặc dùng lệnh ngắn gọn hơn:
git checkout -b feature-greeting
Lệnh này vừa tạo vừa chuyển nhánh – tiết kiệm thời gian! Mình hay dùng cách này, vừa nhanh vừa tiện.
Bước 3: Làm Việc Trên Nhánh – “Xây Dựng Tính Năng”
Giờ bạn đang ở nhánh feature-greeting
. Thêm nội dung mới vào hello.txt
:
echo "New feature: Say hi!" >> hello.txt
Commit thay đổi:
git add hello.txt
git commit -m "Add new greeting in feature branch"
Nhánh master
vẫn không bị ảnh hưởng – an toàn tuyệt đối! Mình từng thử nghiệm tính năng lớn trên master
, làm hỏng cả dự án – từ đó luôn dùng nhánh để thử.
Bước 4: Hợp Nhất Nhánh – “Gộp Đường Lại”
Khi tính năng hoàn thiện, bạn muốn gộp feature-greeting
vào master
. Trước tiên, quay lại nhánh chính:
git checkout master
Hợp nhất nhánh:
git merge feature-greeting
Bạn sẽ thấy:
Updating abc1234..def5678
Fast-forward
hello.txt | 1 +
1 file changed, 1 insertion(+)
Kiểm tra hello.txt
:
cat hello.txt
Nội dung sẽ bao gồm cả “New feature: Say hi!”. Nếu không có xung đột, merge sẽ tự động. Mình từng merge nhầm nhánh, may mà Git báo lỗi kịp – không thì “toang”!
Bước 5: Xóa Nhánh – “Dọn Dẹp Sau Dự Án”
Nhánh feature-greeting
đã xong việc, xóa nó để gọn gàng:
git branch -d feature-greeting
Kết quả:
Deleted branch feature-greeting (was def5678).
Mình hay quên xóa nhánh, để lại cả đống nhánh cũ – nhìn lằng nhằng lắm!
Mẹo Nhỏ Để Thành Công
- Đặt Tên Nhánh Rõ Ràng: Dùng tên như
feature-login
,bugfix-error404
– dễ hiểu. - Merge Cẩn Thận: Luôn kiểm tra
git status
trước khi merge. - Dùng
git branch -a
: Xem tất cả nhánh, kể cả nhánh ẩn.
Thử Ngay
Tạo nhánh feature-test
, thêm dòng “Testing branch!” vào hello.txt
, commit, rồi merge vào master
. Sau đó, xóa nhánh và kiểm tra hello.txt
. Nhắn mình kết quả nếu bạn muốn chia sẻ nhé! Bài sau, ta sẽ đẩy code lên GitHub – “khoe” thành quả với thế giới nào!