Tôi vừa nâng cấp lên magit 2.1.0. (Và cũng để emacs 25.0.50 và git 2.3.1.)
Trước đây, trong *magit*
bộ đệm tôi có thể:
- Chọn một hunk trong khu vực Unstaged.
- Nhập vvà trả lời có để đảo ngược nó.
Điều này rất tiện dụng.
Nhưng bây giờ trong magit 2.1.0, nó báo lỗi : "Cannot reverse unstaged changes"
.
Tại sao?
Lấy một gợi ý từ thông báo lỗi, tôi phát hiện ra mình vẫn có thể làm điều này, mặc dù theo cách hơi "ngược" với nhiều bước hơn:
- sCơn thịnh nộ. (Cảm thấy ngược; di chuyển nó gần hơn đến trạng thái đã cam kết.)
- Điều hướng xuống và chọn nó trong khu vực Staged.
- Nhấn v, trả lời có.
- Tuy nhiên, hunk vẫn là Staged, vì vậy cuối cùng tôi phải uchống lại hunk.
Đây có phải là một lỗi, hoặc, nó có chủ ý và / hoặc tôi đang dày đặc? Nếu sau này, bạn có thể giúp tôi hiểu?
CẬP NHẬT: Sau khi hoàn toàn RTFinfo-ing, tôi thấy rằng có hai lệnh:
- v
magit-reverse
Đảo ngược sự thay đổi tại điểm trong cây làm việc. - k
magit-discard
Loại bỏ sự thay đổi tại điểm từ cây làm việc.
Dường như đó là k magit-discard
những gì tôi đã từng vlàm trước đây. Nó không hoạt động trên một hunk không có tổ chức.
Vì vậy, thực tế tôi chỉ cần kiềm chế bộ nhớ cơ bắp của tôi để sử dụng k. Tôi có thể đăng nó như là một câu trả lời tự. Nhưng tôi đoán tôi vẫn tò mò về lý do căn bản, bởi vì tôi tưởng tượng việc hiểu nó sẽ giúp tôi hiểu được phép thuật tốt hơn về tổng thể.
k
cũng loại bỏ thay đổi không liên quan trong các phiên bản pháp sư trước đó và dường như là lệnh thích hợp cho những gì bạn đang làm. v
là cho git Revert: tạo ra một cam kết mới làm cho sự thay đổi ngược lại của một lần trước. Tôi đoán việc hoàn nguyên một thay đổi chưa thực sự được thực hiện cũng giống như loại bỏ nó, nhưng 'hoàn nguyên' có ý nghĩa cụ thể như một lệnh git.
v
bị ràng buộc với magit-revert-item
(thuật ngữ "đảo ngược" xuất phát từ đó, @PythonNut) và đối với các mục không được sử dụng, điều này được sử dụng để thực hiện magit-discard-item
(cũng như bị ràng buộc k
) - xem dòng 4872 tại đây . Rõ ràng tôi đã vô tình học được ý nghĩa đặc biệt v
đó, nó hoạt động, khi tôi phải học cách sử dụng k
.