Tôi đã hợp nhất nhánh beta vào nhánh chính. Tôi bị đẩy về nguồn gốc. Bây giờ tôi muốn chủ nhân được như trước khi sáp nhập cả cục bộ lẫn từ xa.Băm cam kết nào để hoàn tác hợp nhất được đẩy bằng git-revert?
Một câu trả lời tốt cho undoing a merge that was already pushed gợi ý
git revert -m 1 commit_hash
Nếu đây thực sự là con đường để đi, làm thế nào tôi có thể xác commit_hash? Tôi không thành công cố gắng băm được trả về bởi merge-base:
$ git merge-base --all master beta
1f4b949b7ef97abf913ae672e3acd0907abfac1b
$ git revert -m 1 1f4b949b7ef97abf913ae672e3acd0907abfac1b
error: Mainline was specified but commit 1f4b949b7ef97abf913ae672e3acd0907abfac1b is not a merge.
fatal: revert failed
Tôi đã kiểm tra cả hai git-log và gitk lồng vào cốt của ngành, nhưng chúng rất dài, và tôi không chắc chắn đủ giải thích của tôi để cảm thấy tôi nên tìm kiếm sự trợ giúp trước khi tạo ra một mớ hỗn độn lớn hơn. Beta được bắt nguồn từ v2, được lấy từ master. Đã có một số vụ sáp nhập từ master vào v2 và beta dọc theo con đường như tôi đã giữ cho các chi nhánh mới được cập nhật với chủ. Việc sáp nhập theo hướng từ phiên bản beta thành chủ là một sai lầm mà tôi muốn sửa.
Khi tôi xác định điểm hợp nhất, nếu tôi tìm thấy bất kỳ cam kết nào được thực hiện trên trang chủ sau khi sáp nhập thực sự nằm trên nhánh beta, cách tốt nhất để di chuyển chúng là gì?
Thử 'log - all --graph --pretty = tformat: '% Tín dụng% h% Creset -% C (màu vàng)% d% Creset% s% Cgreen (% an% cr)% Creset' - abbrev-commit --date = relative' (cá nhân tôi bí danh nó), nó sẽ hiển thị các cam kết của tất cả các chi nhánh và ngày của họ, và cũng có nơi sáp nhập xảy ra. –