Bối cảnh: Gần đây tôi đã hợp nhất một nhánh chủ đề khá lớn vào master
. Một vài ngày sau, tôi phát hiện ra nhánh chủ đề này chứa các lỗi. Vì vậy, tôi git revert -m 1 <merge-commit>
chỉnh sửa.rebase branched merged branch
Bài viết: Bây giờ tôi muốn kiểm tra nhánh chủ đề và rebase nó chống lại hiện tại master
để tôi có thể 1) sửa lỗi và 2) (một lần nữa) hợp nhất nhánh cố định lên chủ. Tạo chi nhánh mới, fixedtopic
là phần dễ dàng, nhưng mỗi khi tôi làm
git checkout fixedtopic
git rebase master
git quyết định rằng nó không phải là sẵn sàng để phát lại các cam kết cũ vì họ đã được sáp nhập vào master
. Thay vào đó nó chỉ đơn giản là một rebase nhanh về phía trước.
Câu hỏi: Làm cách nào để buộc phát lại các cam kết lên fixedtopic
bằng cách sử dụng rebase
? Tôi có thể? Tôi không muốn sử dụng cherry-pick
vì nó hơi cồng kềnh hơn một chút.
bổ sung:
git reset
ing hợp nhất cam kết nó không phải là một lựa chọn, vì tôi đã đẩy thầy thượng nguồn.- Tôi không muốn tạo chi nhánh mới ngoài số
master
và hoàn nguyên quy trình hoàn nguyên của mình. Lý do cho điều này là tôi muốn viết lại một số lịch sử của nhánh chủ đề bằng cách sử dụng rebase tương tác. - Dưới đây là một ý chính github của kịch bản: https://gist.github.com/JensRantil/6352495 Lưu ý rằng tôi muốn e8df5ec và ee16464 được áp dụng trên
master
(hoặc chi nhánh dựa trênmaster
).
Đồng nghiệp và gần đây tôi đã gặp phải vấn đề chính xác này với chi nhánh tính năng. Giải pháp của chúng tôi ít nhiều giống như giải pháp được chấp nhận, nhưng chúng tôi đã chọn để đè bẹp tất cả các cam kết từ chi nhánh thành một cam kết duy nhất. Đó là chức năng tương đương để hoàn nguyên việc hoàn nguyên, điều này đơn giản hơn rất nhiều. Chỉ cần một lưu ý cho những người phải đối mặt với vấn đề này trong tương lai. – sirosen