2012-04-04 34 views
5

Tôi đã phạm sai lầm khi tôi rebase cho một cam kết gần đây. (Tôi quên "git fetch --all" đầu tiên, sau đó rebase), và tôi đã cam kết và đẩy vào nhánh từ xa. Bây giờ tôi đã thực hiện việc rebase đúng cách bằng cách tìm nạp trước, giải quyết các xung đột và được đẩy tới nhánh từ xa. Bây giờ, có vẻ như tất cả các cam kết gần đây của tôi đang hiển thị hai lần. Những gì tôi muốn làm là sử dụng chế độ tương tác git rebase, chọn tất cả các cam kết mà tôi muốn, sau đó rebase đúng với mã sha cam kết. Đây có phải là cách để thực hiện việc này không? và nếu tôi bắt đầu git rebase -i, tôi nên sử dụng mã sha nào, mã sha phân nhánh ban đầu? hoặc mã sha mới nhất? Cảm ơn,Làm thế nào để chạy chế độ tương tác git rebase để loại bỏ các cam kết trùng lặp

David

Trả lời

1

Tôi đã xóa thành công các cam kết trùng lặp. Đây là những gì tôi đã làm: cứng thiết lập lại đến các điểm phân nhánh, kéo từ nguồn gốc, bắt đầu git rebase -i SHACODE (điểm phân nhánh ban đầu), chọn các cam kết mà tôi muốn giữ, git rebase đến SHACODE hiện tại.

5

Hãy cho git rebase số lượng cam kết trở về quá khứ. Đối với 10 cam kết trở lại trong lịch sử:

git rebase -i HEAD~10 

Sau đó, chỉ cần xóa các dòng cho các cam kết bạn muốn xóa trong trình soạn thảo được hiển thị. Lưu tệp và thoát sẽ bắt đầu quá trình rebase và các dòng đã bị xóa sẽ không còn trong lịch sử khi quá trình rebase hoàn tất.

Các vấn đề liên quan