Làm thế nào để tự động ký cam kết với magit?


13

Tôi quan tâm đến việc mỗi cam kết của mình được ký bằng khóa GPG của mình. Vì tôi sử dụng phép thuật để giao tiếp với git, tôi đã tự hỏi liệu việc nói với pháp sư để ký từng cam kết là có thể (hoặc một số cách giải quyết để đạt được điều này là khả thi, ít nhất là).


Git thậm chí còn hỗ trợ ký cam kết? Tôi nghĩ chỉ có thẻ mới có thể được ký tên
lunaryorn

1
@lunaryorn git commit -S[<keyid>], --gpg-sign[=<keyid>]. Có ít nhất một lý do để ký từng cam kết: để có bằng chứng mạnh mẽ hơn về việc cam kết đến từ người mà bạn nghĩ nó đã làm. Ký thẻ chỉ cho phép bạn phát hiện thay đổi lịch sử.
Nsukami _

@Nsukami_That không trả lời câu hỏi của tôi, phải không?
lunaryorn

@lunaryorn Xin lỗi nếu nó không trả lời câu hỏi của bạn. Có, Git hỗ trợ ký cam kết
Nsukami _

Câu trả lời:


20

Trong Magit cam kết được tạo bằng cách sử dụng cửa sổ bật lên cam kết ( c). Do đó, cửa sổ bật lên sẽ là một nơi tốt để bắt đầu tìm kiếm hỗ trợ gpg. Nếu bạn làm điều đó, thì bạn sẽ tìm thấy điều này:

=S Sign using gpg (--gpg-sign=)

Vì vậy, gõ = Svà chọn một phím. Để tránh phải làm điều đó mỗi khi bạn tạo một cam kết, bạn có thể lưu giá trị của đối số đó (và tất cả các đối số hiện được đặt khác) bằng cách sử dụng C-x C-s.

Bạn vẫn có thể phải nhập cụm mật khẩu mỗi lần. Để tránh điều đó, bạn nên bắt đầu một tác nhân gpg và đảm bảo Emacs biết về nó, ví dụ như sử dụng keychaintập lệnh shell và keychain-environmentgói Emacs.

Cũng xem và đặt --show-signatuređối số trong cửa sổ bật lên đăng nhập.


Điều này đã được thay đổi trong transient?
tejasbubane

1
Đối số này hiện được ẩn theo mặc định. Thông báo thoáng qua giải thích cách hiển thị nó bằng cách thay đổi "cấp độ".
tarsius

Trong trường hợp bất kỳ ai vấp ngã ở đây tìm kiếm: magit.vc/manual/transient/Enables-and-Diseac-Suffixes.html
tejasbubane

@tarsius Tôi dường như không thể thay đổi cấp độ. Làm thế nào để tôi thiết lập về việc đó? Cảm ơn bạn.
e18r

Phần nào của tài liệu mà tejasbubane liên kết đến không rõ ràng?
tarsius

15

Hãy thử cái này trong của bạn $HOME/.gitconfighoặc của bạn.git/config

[user]
    email = YourEmail
    name = YourName
    signingkey = XXXXXXXX
[commit]
    gpgsign = true

Sau đó chỉ cần cam kết như bình thường.


Câu trả lời này có lợi thế là bạn có thể đặt khóa cho mỗi kho lưu trữ. Có vẻ như =Stùy chọn của pháp sư đặt khóa vào $HOME/.gitconfig, do đó, giống nhau cho tất cả các kho lưu trữ của bạn.
ph0t0nix
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.