Git là công cụ quản lý phiên bản không thể thiếu của bất kỳ dự án phần mềm nào. Tuy nhiên, khi làm việc trong nhóm lớn, việc sử dụng các lệnh Git cơ bản đôi khi không đủ giải quyết các vấn đề phức tạp. Bài viết này sẽ hướng dẫn bạn một số kỹ thuật Git nâng cao vô cùng hữu ích.
1. Git Rebase Thay Vì Git Merge#
Khi bạn muốn cập nhật code mới nhất từ nhánh chính (main/develop) vào nhánh tính năng (feature) của mình:
- Merge tạo ra một commit gộp (merge commit), làm lịch sử commit bị rối.
- Rebase viết lại lịch sử commit bằng cách đặt các commit mới của bạn lên trên commit mới nhất của nhánh chính, tạo ra một đường thẳng lịch sử sạch đẹp.
git checkout feature-branch
git rebase mainbash[!WARNING] Không bao giờ được rebase trên các nhánh công khai hoặc nhánh dùng chung (như
main). Việc viết lại lịch sử commit của nhánh chung sẽ gây lỗi nghiêm trọng cho các thành viên khác trong nhóm.
2. Làm Sạch Lịch Sử Commit Bằng Interactive Rebase#
Trước khi gửi Pull Request (PR), bạn nên gom các commit vụn vặt (như “fix typo”, “update UI minor”) thành các commit có nghĩa bằng lệnh:
git rebase -i HEAD~3bashTrong giao diện tương tác hiện ra, bạn thay đổi hành động từ pick thành squash (hoặc s) cho các commit con để gộp chúng lại với commit cha.
3. Lấy Một Commit Cụ Thể Với Git Cherry-Pick#
Nếu bạn chỉ muốn đem duy nhất một commit từ nhánh khác (ví dụ nhánh sửa lỗi khẩn cấp) sang nhánh hiện tại của mình mà không muốn gộp toàn bộ nhánh đó:
git cherry-pick <commit-hash>bashChúc các bạn áp dụng thành công các kỹ thuật Git này vào dự án của mình để tối ưu hóa quy trình làm việc nhóm!