những gì sẽ là một lệnh tương đương lanh lợi (hoặc công việc) choMercurial (hg) tương đương với reset git (--mixed hoặc --soft)
git reset --mixed HEAD^
hoặc
git reset --soft HEAD^
tức là tôi muốn rời khỏi cây làm việc còn nguyên vẹn nhưng lấy lại kho lưu trữ về trạng thái trước lần commit cuối cùng. Đáng ngạc nhiên là tôi không tìm thấy bất cứ điều gì hữu ích trên stackoverflow hoặc với google.
Lưu ý rằng tôi không thể sử dụng
hg rollback
như tôi đã thực hiện một số lịch sử viết lại sử dụng HistEdit sau khi cam kết cuối cùng.
gia tăng để làm rõ: Sau một rebasing và lịch sử chỉnh sửa tôi đã kết thúc với A < --B < --C. Sau đó, tôi sử dụng HistEdit để squash B và C với nhau, có được A < --C '. Bây giờ tôi muốn chia nhỏ cam kết C '(Tôi đã cam kết các tệp sai trong B). Tôi đã tìm ra cách dễ nhất để làm điều này là lấy kho lưu trữ về trạng thái A (về mặt kỹ thuật chưa từng tồn tại trong kho lưu trữ vì tất cả việc chỉnh sửa lại và chỉnh sửa lịch sử trước bàn tay) và cây làm việc ở trạng thái C 'và sau đó thực hiện hai cam kết.
Lưu ý: điều này cần phần mở rộng MQ của hg. –
Mercurial 2.8 và sau đó đi kèm với một [dải mở rộng] chuyên dụng (https://www.mercurial-scm.org/wiki/StripExtension). – fhd