Làm cách nào để 'hg remove' của Mercurial cho tất cả các tệp bị thiếu?


224

Tôi sử dụng điều này để xóa một tập tin từ repo:

hg remove <full file path> 

Lệnh nào bạn có thể sử dụng để thực hiện hg removetrên tất cả các tệp đã bị xóa cục bộ?

Bằng cách xóa cục bộ, tôi có nghĩa là những người hiển thị với một !khi bạn làm hg status.

Để thêm, bạn chỉ có thể làm hg addđể thêm tất cả các tệp mới (những tiền tố có ?).

Câu trả lời:


364

Điều này sẽ thêm tất cả các tệp mới không bị bỏ qua và xóa tất cả các tệp bị thiếu cục bộ

hg addremove

Một trong hai sẽ loại bỏ tất cả các tệp bị thiếu cục bộ (Chúng là cùng một lệnh)

hg remove --after
hg remove -A

7
Ngoài ra còn có hg quên đó là eqivalent với hg rm -Af
jk.

37
các jk cho một tên người dùng được đe dọa, tôi cảm thấy như evertime tôi đọc một trong những ý kiến hoặc bài bạn đang nói "chỉ là đùa" ở cuối :( mà con người cho biết, điều này giúp, cheers!
Lester Peabody

6
một lời cảnh báo ... đừng hoảng sợ khi nó ném cả đống rác rưởi lên màn hình ... (như tôi đã làm)
Richard B

1
Ồ Cảm ơn! Điều đó đã giúp rất nhiều! Ồ +1 :) hg rm -A
Cullub

32

Nếu bạn có ý định thực hiện addremove và cam kết, nó có thể được tham gia với tùy chọn '-A' như được hiển thị ở đây :

hg commit -A -m 'Commit with addremove'

5

Câu hỏi ban đầu hỏi làm thế nào để loại bỏ (tức là quên) các tập tin hiển thị như "!"khi sử dụng hg st. Một cách tiếp cận trực tiếp có lợi thế về tính minh bạch là sử dụng hg stvới -ntùy chọn:

hg -v forget $(hg st -nd)

(Tất nhiên các tập tin sẽ chỉ bị lãng quên ở bên cạnh cam kết .)

Các cờ được ghi lại rõ ràng ở nơi khác (ví dụ: bằng lệnh hg), nhưng tóm tắt:

  • -n có nghĩa là "chỉ tên tệp"
  • -d có nghĩa là "chọn các tệp đã bị xóa"

Bạn có thể giải thích từng lá cờ đó không?
Cullub

1

Nếu bạn muốn thêm và cam kết, nhưng chưa sẵn sàng để thực hiện phần còn lại của các thay đổi, tôi nghĩ bạn vẫn phải liệt kê chúng:

$ hg st
M modified-file
A added-file
R removed-file-1
R removed-file-2

$ hg commit -m"remove removed-file-1 and removed-file-2" removed-file-*
abort: removed-file-*: No such file or directory

$ hg commit -m"remove removed-file-1 and removed-file-2" removed-file-1 removed-file-2
committed changeset 185:628800a7af84
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.