2012-09-26 27 views
10

Có cách nào để rebase một chi nhánh khác trong khi bỏ qua một cam kết cụ thể (mâu thuẫn) trên chi nhánh khác không?Tôi làm cách nào để rebase trong khi bỏ qua một cam kết cụ thể?

Ví dụ, tôi muốn rebase mybranch lên master, nhưng chính chứa một cam kết sẽ xung đột với các cam kết trong chủ, vì vậy tôi muốn hoàn tác cam kết đó hoàn toàn.

-o-o-o-o-o-x-o-o-o-o master 
    | 
    o-o-o-o mybranch 

x đánh dấu cam kết xung đột.

Trả lời

23

Sử dụng tương tác rebase:

git rebase -i master 

Một biên tập viên sẽ mở ra và bạn sẽ có một danh sách các cam kết như thế này:

pick b8f7c25 Fix 1 
pick 273b0bb Fix 2 
pick 6aaea1b Fix 3 

Chỉ cần xóa các cam kết mà bạn muốn bỏ qua. Nó sẽ được bỏ qua trong khi rebasing nhánh của bạn vào master.

P.S. Nếu bạn không thể xem trình chỉnh sửa, vui lòng tham khảo câu hỏi này để biết giải pháp: How can I set up an editor to work with Git on Windows?

+0

Trình chỉnh sửa chỉ hiển thị các cam kết trên mybranch. Có cách nào để đưa nó lên hiển thị tất cả các cam kết; tức là từ đầu của mybranch, xuống để làm chủ, và lên đến đỉnh của thầy? – Phillip

+1

Bạn có muốn xóa cam kết trong chi nhánh của mình hoặc trong trang cái không? Lựa chọn thứ hai nếu khá là không an toàn và sẽ gây rắc rối cho tất cả các nhà phát triển khác, những người có ''chủ nhân'' là thượng nguồn của họ. –

+0

Tôi muốn bỏ qua một cam kết trên master (tôi đã thêm một sơ đồ như là một phần của câu hỏi của tôi). Tôi không lo lắng vào lúc này về 'chủ nhân' ở thượng nguồn. – Phillip

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