2017-05-18 14 views
15

Tôi đang làm việc trên một dự án sử dụng Git làm VCS. Tôi có một chi nhánh xyz cắt từ nhánh chính của chủ. Sau khi làm việc một lúc, tôi đã cam kết mã của mình và lấy một nhánh của nhánh chính.Hủy bỏ Hợp nhất Git

Kéo là tốt. Sau đó tôi sáp nhập mã với chủ. Sau khi hợp nhất, đã xảy ra sự cố trong một số tệp nhất định. Tôi chưa cam kết mã sau khi hợp nhất. Ai đó có thể xin hướng dẫn làm thế nào tôi có thể hủy bỏ hợp nhất này và mang chi nhánh của tôi đến nơi tôi đang làm việc cho tiểu bang trước khi tôi sáp nhập nó?

+1

có thể trùng lặp của [Làm thế nào để trở lại kho Git để một trước cam kết?] (Http://stackoverflow.com/questions/4114095/how-to-revert-git-repository-to-a- cam kết trước đó) – mttdbrd

+0

Bạn không thể khôi phục lại cam kết trước đó của chi nhánh? –

+0

Bản sao có thể có của [Cách hoàn tác git hợp nhất với xung đột] (http://stackoverflow.com/questions/5741407/how-to-undo-a-git-merge-with-conflicts) –

Trả lời

57

miễn là bạn không cam kết bạn có thể gõ

git merge --abort 

cũng giống như các dòng lệnh gợi ý.

2

Sự thật mà nói có rất nhiều, rất nhiều nguồn lực để giải thích làm thế nào để làm điều này đã ra trên web:

Git: how to reverse-merge a commit?

Git: how to reverse-merge a commit?

https://git-scm.com/blog/2010/03/02/undoing-merges.html

Vì vậy, tôi đoán tôi sẽ chỉ tóm tắt một số trong số này:

  1. git revert <merge commit hash>
    Điều này tạo thêm "trở lại" cam kết nói rằng bạn tháo một merge

  2. git reset --hard <commit hash *before* the merge>
    lịch sử thiết lập lại này trước khi bạn làm việc hợp nhất. Nếu bạn có cam kết sau khi hợp nhất, bạn sẽ cần phải cherry-pick chúng vào sau đó.

Nhưng hướng dẫn thực sự tốt hơn bất cứ điều gì tôi có thể giải thích, với sơ đồ! :)

1

Nếu bạn làm "trạng thái git" trong khi có xung đột hợp nhất, điều đầu tiên mà git cho bạn biết là cách hủy hợp nhất.

output of git status while having a merge conflict

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