2015-03-08 17 views
30

Tôi vô tình thực hiện một số git pull origin master từ dev và master được hợp nhất thành dev. Có thể hủy hợp nhất không?Làm cách nào để hủy hợp nhất Git?

Tôi đã nhìn thấy các giải pháp khác nhau, tôi đã cố gắng này từ cả dev và điều khiển: git revert -m 1 <commit> (một lần mỗi) Nhưng tôi đã nhận: Tất cả mọi thứ là để cập nhật lên, mỗi lần

Tôi muốn hoàn tác quy trình hợp nhất trong dev: https://github.com/iliassk/PED_MyTodo/commits/dev cam kết: e382550

Trả lời

64

Bạn có thể đặt lại chi nhánh của mình về trạng thái ngay trước khi hợp nhất nếu bạn tìm thấy cam kết đó.

Một cách là sử dụng git reflog, nó sẽ liệt kê tất cả các HEAD bạn đã có. Tôi thấy rằng git reflog --relative-date là rất hữu ích vì nó cho thấy bao lâu trước mỗi thay đổi happend.

Khi bạn tìm thấy cam kết chỉ cần thực hiện git reset --hard <commit id> và chi nhánh của bạn sẽ như trước đây.

+0

Vì đây là sự hợp nhất lẻ: "kéo gốc chủ: Hợp nhất được thực hiện bởi chiến lược 'đệ quy'" tôi bị mất một chút. Bạn có khuyên tôi làm một git reset --hard 757501b từ master (mặc dù không có thay đổi trong lịch sử). Hoặc git reset --hard 14cbb9c từ dev? – redAce

+0

Đó là dev bạn cần phải sửa chữa, phải không? Vì vậy, tìm các cam kết đã được thực hiện trên dev ngay trước khi hợp nhất xấu này và làm các thiết lập lại trên dev để cam kết đó. –

+0

git revert -m 1 mpoletto

13

Sử dụng: git merge --abort

Tôi nghĩ đây là cách đơn giản nhất để hủy hợp nhất git merge.

+0

nó dint work @Nikhil – thanga

+1

Cảm ơn nó đã làm việc vì tôi chưa cam kết hợp nhất :) – Woppi

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