Trộn remote một nhánh về kho code Git và squash thành một commit

🎯 Mục tiêu

Gộp toàn bộ nội dung từ nhánh nukeviet5.0-module-page (thuộc repo fork) vào nhánh chính nukeviet5.0, và squash thành 1 commit duy nhất.


🧩 Giả định

  • Nhánh chính: nukeviet5.0
  • Remote gốc (repo chính): origin
  • Remote fork: nam
  • Nhánh trên fork: nukeviet5.0-module-page

✅ Các bước thực hiện

1. Chuyển sang nhánh chính

git checkout nukeviet5.0

2. Fetch nhánh từ remote nam

git fetch nam nukeviet5.0-module-page

3. Tạo nhánh tạm từ nhánh cần merge

git checkout -b temp-merge nam/nukeviet5.0-module-page

4. Rebase tương tác để squash commit

git rebase -i origin/nukeviet5.0
  • Trong cửa sổ rebase:
    • Giữ pick cho commit đầu tiên
    • Đổi các commit sau thành squash hoặc s
    • Chỉnh sửa commit message nếu cần

Để huỷ chạy git rebase --abort. Nếu quá trình trộn bị xung đột thì quay lại xử lý xung đột:

  • Tìm tệp xung đột tự chỉnh sửa
  • Chạy git add <tên-file> để thêm nó vào commit

Xử lý xung đột xong chạy git rebase --continue để tiếp tục. Nếu còn xung đột nữa thì cứ tiếp tục làm nữa, cho đến khi hết xung đột

5. Quay lại nhánh chính

git checkout nukeviet5.0

6. Merge nhánh tạm đã squash

git merge temp-merge --no-ff

Sau đó lại tiếp tục xử lý xung đột và commit

7. Xoá nhánh tạm

git branch -d temp-merge

8. Push lên GitHub

git push origin nukeviet5.0

📝 Kết quả

Bạn đã gộp toàn bộ thay đổi từ nam/nukeviet5.0-module-page vào nukeviet5.0 chỉ với 1 commit duy nhất, giúp lịch sử git gọn gàng và dễ theo dõi.


🔎 Gợi ý

Bạn có thể chạy lệnh sau để xem trước danh sách commit sẽ squash:

git log --oneline nam/nukeviet5.0-module-page

Nếu bạn cần hỗ trợ tạo nội dung squash cụ thể cho các commit, hãy gửi đầu ra của lệnh này.

Tags: Github
  0 Bình luận
Chia sẻ:  

Đăng kí nhận tin mới
Hãy để lại email của bạn, tôi sẽ thông báo với bạn khi có bài viết mới nhất.
Bạn đã không sử dụng site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây