2012-04-24 19 views
23

Tôi có một kho lưu trữ Mercurial giả định trên đĩa. Tôi hầu hết là tạo ra một tính năng mới, khi tôi nhận ra mình đã tạo ra một mớ hỗn độn hoàn toàn của tập tin mà tôi đang làm việc, và muốn hoàn nguyên tập tin đó về trạng thái cam kết cuối cùng của nó.Làm cách nào để hoàn nguyên một tệp về trạng thái 'kiểm tra lần cuối' trong Mercurial?

Tôi có thể sử dụng hg update để làm mới bản sao làm việc từ kho lưu trữ, nhưng cập nhật mọi tệp.

Có một lệnh thủy ngân có thể cập nhật chỉ một tệp không?

Trả lời

28

Có một lệnh mercurial để hoàn nguyên tệp. hg revert điều này sẽ hoàn nguyên bất kỳ thay đổi nào. Bạn cũng có thể chuyển tên tệp cho nó, ví dụ: hg revert fileName.

3

Tôi tin rằng bạn có thể nhập hg revert /path/to/file/<file name> và nó sẽ chỉ cập nhật tệp đó.

+1

Không, đó là Git có hành vi kỳ lạ này cho 'git checkout' (trong Mercurial,' hg thanh toán 'là một bí danh cho' hg update'). –

+0

Bạn đúng, cảm ơn bạn đã sửa tôi. – Kodi

+0

@Vari Câu trả lời của bạn có đúng không? Nếu có, vui lòng xóa. –

11

hg revert fileName sẽ hoàn nguyên tệp đó về bản sửa đổi bạn đang ở. Nếu bạn muốn hoàn nguyên tất cả thay đổi, bạn có thể chạy hg revert --all.

Cả hai tệp này đều sẽ tạo tệp fileName.orig để bạn có thể giữ các thay đổi bạn muốn hoàn nguyên chỉ trong trường hợp. Nếu bạn muốn phục hồi các tập tin và không phải tất cả các file .orig bạn có thể thêm các tùy chọn -C: hg revert fileName -C hg revert --all -C

+0

Tôi tìm thấy nó tốt hơn để thêm '* .orig' vào tệp' .hgignore' của tôi và sau đó chỉ để lại các tệp '.orig'. Có lẽ tôi sẽ cần họ một ngày :) Nếu họ làm phiền bạn, sau đó bạn có thể sử dụng phần mở rộng thanh trừng để làm sạch chúng. –

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