Tôi vô tình đã thực hiện "cam kết hg --amend" thay vì chỉ là cam kết. Làm thế nào tôi có thể quay trở lại cam kết trước khi sửa đổi?Mercurial: cuộn lại "hg commit --amend".
Trả lời
LƯU Ý: Câu trả lời này hiện không được chấp nhận. Hãy xem the answer từ @Sorina Sandu thay thế.
Xem hg help commit
, nơi nó nói:
Cờ --amend có thể được sử dụng để sửa đổi phụ huynh của thư mục làm việc với một mới cam có chứa những thay đổi trong các phụ huynh trong ngoài những hiện được báo cáo theo "trạng thái hg", nếu có. Cam kết cũ được lưu trữ trong gói sao lưu trong ".hg/strip-backup" (xem "gói trợ giúp hg" và "hg giúp bỏ nhóm" về cách khôi phục nó).
Bạn có thể sử dụng hg reflog
(từ journal extension) và hg reset <hash>
.
hg reflog -v
nên cung cấp cho một cái gì đó như:
<old-hash> -> <new-hash> <user> <timestamp> commit --amend <some-path>
nếu đó là sửa đổi mà bạn muốn phục hồi, chỉ cần sử dụng:
hg reset <old-hash>
Các cam kết sẽ được chuyển tới những gì là trước đây đã và các thay đổi đã được sửa đổi giờ đây sẽ là những thay đổi không được cam kết (hãy kiểm tra bằng cách sử dụng hg status
và hg diff
).
đây là câu trả lời đúng. mercurial không hỗ trợ reflog và thiết lập lại –
yep, điều này làm việc trong mercurial chỉ hoàn toàn –
@ JacobKrall Điều này làm việc cho tôi hoàn hảo với Mercurial. – zzy
- Tìm tất cả các sao lưu được lưu trong
.hg/strip-backup
thư mục hg unbundle <latest backup>
- Bây giờ bạn nên có hai đầu - một với sửa đổi cam kết, một trong những khác với hai cam kết (một đầu tiên - cũ cam kết trước khi sửa đổi, một giây Bạn có thể làm
hg histedit
để thay đổi nó (ví dụ: chọnedit
để đạt được trạng thái ngay trước cam kết, tức là khi bạn có thể xem tất cả các thay đổi bằng cách sử dụnghg diff
).
Đừng quên bỏ qua đầu cũ.
- 1. Mercurial: thực thi "hg pull -u" trước khi "hg commit"
- 2. Có một Bazaar tương đương với `git commit --amend` không?
- 3. Cách thực hiện "git commit --amend" bằng GitHub For Mac
- 4. Mercurial undo three hg push
- 5. Sử dụng hg hoàn nguyên trong Mercurial
- 6. Mercurial (hg) tương đương với reset git (--mixed hoặc --soft)
- 7. Mercurial (hg) chỉ cam kết một số tệp nhất định
- 8. Pre Commit Hook cho JSLint trong Mercurial và Git
- 9. Làm cách nào để hoàn nguyên nhiều lần commit trong Mercurial?
- 10. Mercurial hg Vấn đề subrepository - "hủy bỏ: không sửa đổi '
- 11. Bật hoàn thành tab bash cho Mercurial (hg)
- 12. Mercurial "hg status" và đường dẫn tương đối
- 13. Mercurial `hg clone` nhưng bỏ qua tất cả subrepos?
- 14. Mercurial/hg - hủy bỏ: hợp nhất chưa được cam kết
- 15. Mercurial hg phục vụ nhiều kho lưu trữ
- 16. Khi sử dụng Mercurial HG, cách lấy mã mới nhất?
- 17. Mercurial: liệt kê các tập tin "hg diff"
- 18. Mercurial: làm cho `hg log` không hiển thị tập tin?
- 19. Làm thế nào để sửa đổi một "công cộng" changeset trong Mercurial
- 20. Mercurial - hoàn nguyên các thay đổi không được cam kết sau khi "hg update -C"
- 21. Có thể mở lại một nhánh đã đóng trong Mercurial không?
- 22. Làm thế nào để quay trở lại cam kết và đẩy sửa đổi trong mercurial?
- 23. Mercurial - Quá trình cơ bản để trở lại một hợp nhất và thử lại
- 24. Quy trình làm việc để "quay trở lại" thay đổi thành chi nhánh Mercurial (Hg) khác nhau?
- 25. Công cụ Mercurial và merge?
- 26. Phân nhánh với Mercurial SCM
- 27. Mercurial: cho phép hợp nhất từ nhánh phát hành vào nhánh mặc định, nhưng không ngược lại
- 28. Không thể hợp nhất trong mercurial
- 29. Hg: xóa mới nhất cam kết
- 30. Cách nhanh nhất để "đặt lại" kho Mercurial sang Phiên bản X (không nhân bản)
Vui lòng cải thiện câu trả lời này bằng cách giải thích các bước cần được thực hiện sau khi nhóm không thực hiện được cam kết không được đặt tên. – akuhn
@akuhn, tôi nghĩ rằng đó là 'hg merge' và sau đó' hg commit -m 'message_for_the_last_commit'', nhưng nó làm rối loạn lịch sử một chút. – oblalex
Nói chung, bạn sẽ chỉ là 'sửa đổi 'các' tip' chưa được giải quyết mới tự cam kết, để bạn có thể cho nó một thông báo lỗi có ý nghĩa, hoặc bạn sẽ làm như @oblalex được đề xuất và 'hợp nhất'. Trong nhiều trường hợp, bạn sẽ muốn nhận thông điệp cam kết của mẹo cũ (để lại bởi 'hg unbundle') làm thông điệp được sử dụng với mẹo mới. –