Câu trả lời:
Bắt đầu với v2.1.0
, Magit sử dụng thư viện magit-popup.el
để thực hiện các "bộ đệm bật lên" hoặc "combo tiền tố-hậu tố-hậu tố". Mặc dù tên của nó, thư viện đó có thể được sử dụng bởi các gói không liên quan đến Magit, và do đó được cung cấp dưới dạng gói Elpa riêng biệt. Nó thậm chí có hướng dẫn riêng của nó bây giờ!
Đối số mặc định bây giờ có thể được đặt trực tiếp từ bộ đệm bật lên. Để luôn luôn sử dụng --verbose
khi cam kết làm điều này:
--verbose
magit-commit-arguments
)Theo mặc định, tất cả các bộ đệm bật lên kết thúc bằng một phần có tên "Lệnh chung". Nếu không, sử dụng C-tđể hiển thị nó. Bạn có thể không muốn xem phần đó mọi lúc và do đó nên đặt magit-popup-show-common-commands
thành nil
.
Tất nhiên, cũng có thể đặt giá trị của magit-commit-arguments
và các biến khác như vậy bằng giao diện Tùy chỉnh setq
, hoặc add-to-list
. Nhưng tôi khuyên bạn nên chống lại điều đó, bởi vì điều đó sẽ khiến không thể thay đổi mặc định khi đang bay.
Theo như tôi có thể nói Magit không theo dõi các tùy chọn "mặc định", nhưng chúng ta có thể làm cho nó "nhấn -v
" mỗi khi bộ đệm Cam kết bật lên:
(advice-add #'magit-key-mode-popup-committing :after
(lambda ()
(magit-key-mode-toggle-option (quote committing) "--verbose")))
Để tìm chức năng cần tư vấn, tôi mở một magic-status
bộ đệm và nhấn C-h k c
. Điều này dẫn tôi đến magit-key-mode-popup-committing
. Sau đó (với bộ đệm Cam kết vẫn được hiển thị) Tôi nhấn C-h k -v
để tìm lambda
biểu mẫu Cuộc gọi Magit khi bạn nhấn -v
trong cửa sổ Cam kết.
Cập nhật: Tôi đã viết câu trả lời này một cách độc lập, nhưng hãy xem Tôi có thể chọn tùy chọn git-log --allall ban đầu không? , câu trả lời được đưa ra ở đó, và ý kiến cho câu trả lời đó.
Trong các phiên bản pháp sư sử dụng tạm thời (sau tháng 2 năm 2019 hoặc lâu hơn), đặt cờ, sau đó lưu trong khi vẫn ở trong bộ đệm tạm thời.
Vì vậy, đối với cam kết, chuỗi khóa sẽ giống như
C-x g # start magit
s # to stage changes
c # start commiting
-v # enable verbose
C-x C-s # Save the setting persistently across sessions
c # do the actual commit
Sau đó, lần cam kết tiếp theo được gọi, verbose vẫn sẽ được đặt. (Bạn không phải hoàn thành cam kết và có thể thoát sau khi lưu với C-x C-s
.)
Mặc định thực tế được lưu trong một transient/
thư mục trong .emacs.d/
.
Xem hướng dẫn tạm thời https://magit.vc/manual/transient.html#Saving-Values
Mặc dù nó không chính xác như những gì bạn muốn (diff trong bộ đệm cam kết của bạn), bạn có thể đặt magit để mở rộng các khác biệt theo giai đoạn trong cửa sổ trạng thái :
(setq magit-expand-staged-on-commit 'full)
Luồng công việc magit dường như luôn luôn là bộ đệm trạng thái mở và sau đó mở tách với bộ đệm cam kết, bạn luôn kết thúc với hai bộ đệm được hiển thị. Cài đặt ở trên sẽ làm cho bộ đệm thứ hai (trước đây không hữu ích) hiển thị diff của bạn.
Bạn cũng có thể sử dụng t
để chỉ mở rộng các tiêu đề khác (để nó hiển thị số dòng):
(setq magit-expand-staged-on-commit t)
Trong khi viết diff của bạn, bạn có thể chuyển sang bộ đệm trạng thái và sử dụng TAB
để mở rộng (hoặc gấp) diffs.
Ngoài ra, bạn có thể sử dụng C-c C-d
từ bộ đệm cam kết để mở một bộ đệm khác với khác với magit-diff-staged
. (Xem vấn đề này .)
Là magit
phiên bản 2.1
, bạn có thể sử dụng điều này trong cấu hình của bạn:
;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))
--no-verify
rất hữu ích khi bạn có các dự án sử dụng git hook (sử dụng một cách thận trọng, rõ ràng).