2016-02-26 18 views
6

Tôi vô tình hợp nhất một chi nhánh và đã kiểm tra "Thay đổi ngay lập tức". Thật không may tôi đã thực hiện một lỗi hợp nhất và bây giờ tôi wan't để thực hiện một cam kết ngược lại để loại bỏ nó. Tuy nhiên, mỗi lần tôi làm điều đó trong SourceTree, tôi nhận được lỗi sau:Git reverse cam kết hợp nhất được đẩy trong SourceTree

error: Commit X is a merge but no -m option was given. fatal: revert failed

Có cách nào để thực hiện việc này hay tôi phải sử dụng thiết bị đầu cuối cho điều này? Đã đọc về nó nhưng không thể tìm thấy một giải pháp cho trường hợp cụ thể này.

Trả lời

3

Bạn có thể tìm câu trả lời về cách mang chi nhánh của bạn trở lại trạng thái trước khi hợp nhất (hoàn nguyên cứng). Nếu có thể hoàn nguyên mọi thứ về trạng thái đó, thì tốt thôi. Nhưng thông thường tôi phải hoàn nguyên việc hợp nhất một chi nhánh tính năng trong khi vẫn giữ lại các cam kết được thực hiện sau khi hợp nhất.

Chỉ cần làm:

git revert -m 1 [copy-paste-the-id-of-the-merge-commit-here] 

nếu cần thiết, sửa xung đột và cam kết.

chỉnh sửa: và có, SourceTree phải chuyển đối số -m 1 nếu bạn hoàn tác cam kết hợp nhất.

2

Bạn có thể muốn kích chuột phải vào mới nhất cam kết và nhấn:

"Reset chi nhánh hiện tại để này cam kết"

enter image description here

và chọn chế độ cứng khi được nhắc.

enter image description here

Lưu ý quan trọng: Mọi thay đổi bản sao làm việc sẽ bị loại bỏ khi nhấn vào chế độ cứng.

Hy vọng điều này sẽ hữu ích!

Chúc mừng!

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