Làm thế nào để kết thúc việc hợp nhất một tệp của bạn?


103

Sau khi tôi hợp nhất một tệp trong Git, tôi đã cố gắng kéo kho lưu trữ nhưng lỗi xuất hiện:

Bạn chưa kết thúc hợp nhất của mình. (MERGE_HEAD tồn tại)

Làm thế nào để kết luận một hợp nhất?

Câu trả lời:


94

Kiểm tra trạng thái ( git status) của kho lưu trữ của bạn. Mọi tệp chưa hợp nhất (sau khi bạn tự giải quyết lỗi) phải được thêm ( git add) và nếu không có tệp chưa hợp nhất, bạn nêngit commit


11
Nhưng điều gì sẽ xảy ra nếu mọi thứ được cam kết ( git statushiển thị một dir hoạt động sạch sẽ) và lỗi trên vẫn xảy ra?
Marius Soutier

1
@Marius Đảm bảo rằng bạn chạy tiêu chuẩn git statuschứ không phải một số bí danh lọc ra bất kỳ tin nhắn nào. Trong phiên bản hiện tại, khi bạn chạy trạng thái git, nó sẽ hiển thị cho bạn thông báo bạn nên làm gì để "kết thúc hợp nhất". Và nếu bạn hoàn toàn chắc chắn rằng bạn đã hợp nhất mọi thứ và bạn sẽ không mất bất cứ thứ gì, thì bạn có thể chỉ cần xóa tệp trong .git / MERGE *, nơi lưu trữ những gì bạn đã cố gắng hợp nhất và thông báo cam kết mặc định cho việc hợp nhất đó
MBO

1
Cảm ơn, đó là những gì cuối cùng tôi đã làm, nhưng bằng cách nào đó, điều này dường như có lỗi. Làm thế nào một MERGE_HEAD có thể tồn tại nếu bạn đã hợp nhất và cam kết mọi thứ?
Marius Soutier

2
Đúng, tôi vừa gặp vấn đề tương tự như Marius, đã thực hiện hợp nhất, giải quyết xung đột, nhưng không có gì để cam kết bây giờ (bằng cách nào đó). Phải xóa thủ công các tệp MERGE * theo đề xuất.
Simon East

@johndpope power ("tnx", 100)
knagode

31

Lưu ý và cập nhật:

Kể từ Git1.7.4 (tháng 1 năm 2011), bạn có git merge --abort, đồng nghĩa với "git reset --merge " khi quá trình hợp nhất đang diễn ra.

Nhưng nếu bạn muốn hoàn thành việc hợp nhất, trong khi bằng cách nào đó, không có gì còn lại để thêm vào, thì một kết quả thô rm -rf .git/MERGE*có thể đủ để Git quên đi lần hợp nhất hiện tại.


nếu bạn xóa MERGE_HEAD, không phải cam kết kết quả chỉ có một phụ huynh nên bạn sẽ không có lịch sử của nhánh đã hợp nhất?
Jason Goemaat

@JasonGoemaat xem xét chúng tôi cố gắng hủy hợp nhất, dù sao thì sẽ không có "cam kết kết quả".
VonC


1

Nếu bạn gặp lỗi này trong SourceTree, hãy đi tới Hành động> Giải quyết xung đột> Khởi động lại hợp nhất.

Phiên bản SourceTree được sử dụng là 1.6.14.0


0

Tôi đã gặp lỗi tương tự và tôi đã làm theo bài viết được tìm thấy trên google giải quyết vấn đề của tôi. Bạn chưa kết thúc việc hợp nhất của mình


Liên kết đến một giải pháp luôn được hoan nghênh, nhưng vui lòng thêm thông tin cần thiết vào câu trả lời của bạn vì liên kết có thể đã cũ.
slfan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.