Published on

Giải quyết vấn đề commit lộn vô nhánh chính

Authors
  • avatar
    Name
    Hai Nguyen
    Twitter

Có tình huống do không để ý, đáng nhẽ chúng ta làm ở nhánh feature và sẽ tạo commit. Rồi từ đó tạo merge request lên nhánh main. Tuy nhiên khi commit xong mới để ý là ta mới ngớ ra:

  • Ô mình commit vô main à!?

Để giải quyết hãy thực hiện bước sau:

  1. Tạo nhánh feature mới nếu bạn chưa tao
git checkout main
git pull origin main # Đảm bảo rằng bạn ở phiên bản mới nhất
git checkout -b feature # Tạo nhánh feature mới
  1. Chuyển code từ main -> feature
git cherry-pick <comit-hash>

Thay <commit-hash> bằng mã hash của commit mà bạn lỡ tay thực hiện. Một trong các cách để tìm ra mã hash là chạy

git log # chú ý chạy trên chính nhánh ta commit lộn là main để biết hash code
  1. Xoá commit khỏi nhánh main

Bạn cần xoá commit kia khỏi nhánh main. Để làm điều này, gõ lệnh reset:

git checkout main
git reset --hard HEAD~1
  • Lưu ý: Head~1 sẽ loại bỏ commit cuối cùng
  1. Push lên remote Sau khi thực hiện các bước trên, bạn cần push lại các thay đổi lên remote repository:
git push origin main --force
git push origin feature
  1. Tạo Merge request

Bây giờ bạn có thể tạo Merge Request từ nhánh feature vào nhánh main.

Cuộn xuống để tải bình luận