🎯 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ặcs
- Chỉnh sửa commit message nếu cần
- Giữ
Để 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.