2015-01-26 13 views
6

Tôi đã thực hiện cam kết, CM và sau đó áp dụng một số bản vá, P1P2. Vì vậy, lịch sử của tôi trông giống nhưdi chuyển một cam kết lên đầu tất cả các cam kết

C1-C2-CM-P1-P2 

nơi C1C2 hai cam kết trước đó.

Vấn đề là tôi quên tạo bản vá cho cam kết của mình. Làm cách nào để di chuyển cam kết của tôi CM lên đầu các cam kết? Lịch sử sẽ trông giống như

C1-C2-P1-P2-CM 

Trả lời

7

Nếu bạn chưa đẩy chi nhánh của bạn chưa, bạn có thể làm một rebase tương tác:

git rebase -i C2 

Sau đó bạn có thể sắp xếp lại các cam kết của mình như P1-P2-CM, và tái áp dụng chúng trên đầu trang của C2.

4

Bạn có thể sử dụng rebase -i.

$ git rebase -i HEAD~5 

Nó sẽ mở trình soạn thảo văn bản của bạn với 5 lần commit mới nhất. Sắp xếp lại các cam kết theo thứ tự bạn muốn, sau đó lưu và đóng.

+0

HEAD ~ 3 hoặc C2 (như tôi đề cập trong câu trả lời của tôi) là đủ. – VonC

1

Thực hiện git rebase -i C1 và sau đó trong trình chỉnh sửa bật lên, sắp xếp lại các cam kết, lưu và thoát. Nếu không có xung đột hoặc vật gì, nó sẽ sắp xếp lại nó.

+0

Tại sao C1? C2 (như tôi đề cập đến trong câu trả lời của tôi) là đủ ở đây. – VonC

+0

Nên. Tôi vừa chọn cam kết đầu tiên tôi có thể thấy. –

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