Để merge và push code từ branch lên main một cách hiệu quả mà không bị mất code, bạn cần tuân theo một số bước chuẩn hóa để tránh xung đột và lỗi không mong muốn. Dưới đây là hướng dẫn chi tiết:

1. Cập nhật branch chính (main)

Trước khi bắt đầu merge, đảm bảo rằng bạn đã có phiên bản mới nhất của main. Chạy lệnh sau để cập nhật:

git checkout main
git pull origin main

2. Chuyển sang branch làm việc

Chuyển sang branch bạn đang làm việc (branch phát triển tính năng hoặc sửa lỗi):

git checkout

3. Cập nhật branch làm việc với code mới nhất từ main

Đảm bảo branch của bạn có mã mới nhất từ main để tránh xung đột sau này khi merge. Có thể sử dụng một trong hai cách sau:

Cách 1: Rebase (Khuyến khích vì giữ lịch sử commit gọn gàng)

Rebase giúp đưa lịch sử commit của bạn lên đầu branch main:

git fetch origin
git rebase origin/main
  • Kiểm tra xung đột nếu có, và giải quyết từng file theo hướng dẫn của Git.
  • Sau khi giải quyết xung đột, sử dụng:
git rebase --continue

Cách 2: Merge main vào branch

Cách này sẽ tạo ra một commit merge, giữ nguyên lịch sử của cả hai branch:

git fetch origin
git merge origin/main
  • Tương tự, nếu có xung đột, bạn cần giải quyết chúng.

4. Kiểm tra code

Sau khi rebase hoặc merge, hãy kiểm tra lại code của bạn để đảm bảo không có vấn đề nào phát sinh từ quá trình giải quyết xung đột.

5. Push code lên branch hiện tại

Khi mọi thứ đã ổn, bạn có thể push code đã cập nhật lên branch:

git push origin

6. Merge branch lên main

Bây giờ, bạn có thể merge code từ branch của mình lên main. Có hai cách phổ biến:

Cách 1: Pull Request (PR)

Đây là phương pháp được khuyến khích trong các dự án nhóm:

  • Tạo Pull Request trên nền tảng như GitHub hoặc GitLab để merge code từ your-branch vào main.
  • Một thành viên khác của nhóm sẽ review và merge PR.

Cách 2: Merge trực tiếp từ dòng lệnh

Nếu làm việc một mình hoặc trong môi trường không cần Pull Request, bạn có thể merge trực tiếp:

  • Chuyển sang branch main:
git checkout main
  • Merge branch của bạn vào main:
git merge
  • Push code lên main:
git push origin main

7. Xóa branch cũ

Sau khi đã merge xong, bạn có thể xóa branch cũ nếu không còn cần thiết:

git branch -d 
git push origin --delete

Một số lưu ý quan trọng:

  • Luôn cập nhật code từ main trước khi bắt đầu merge để tránh xung đột.
  • Rebase thay vì merge nếu bạn muốn giữ lịch sử commit sạch sẽ.
  • Kiểm tra kỹ code sau mỗi bước merge hoặc rebase để đảm bảo mọi thứ hoạt động tốt.
  • Sử dụng Pull Request (PR) để đảm bảo có người review code trước khi merge vào main.

Việc tuân theo quy trình trên sẽ giúp bạn merge và push code từ branch lên main một cách hiệu quả, tránh mất mát code và giảm thiểu xung đột.