Tôi rất thích cách của Micah Henning trong bài viết của anh ấy (xem Thiết lập Nhận dạng Git ) về chủ đề này. Thực tế là anh ta áp dụng và buộc nhận dạng cho từng kho lưu trữ được tạo / nhân bản là một cách tốt đừng quên thiết lập điều này mỗi lần.
Cấu hình git cơ bản
Bỏ đặt cấu hình người dùng hiện tại trong git:
$ git config --global --unset user.name
$ git config --global --unset user.email
$ git config --global --unset user.signingkey
Buộc cấu hình danh tính trên mỗi kho lưu trữ cục bộ mới:
$ git config --global user.useConfigOnly true
Tạo bí danh Git cho identity
lệnh, chúng ta sẽ sử dụng sau:
$ git config --global alias.identity '! git config user.name "$(git config user.$1.name)"; git config user.email "$(git config user.$1.email)"; git config user.signingkey "$(git config user.$1.signingkey)"; :'
Tạo danh tính
Tạo danh tính với GPG (sử dụng gpg
hoặc gpg2
tùy thuộc vào những gì bạn có trên hệ thống của mình). Lặp lại các bước tiếp theo cho từng danh tính bạn muốn sử dụng.
Lưu ý: [keyid]
đây là định danh của khóa bí mật đã tạo. Ví dụ ở đây:
sec rsa4096/8A5C011E4CE081A5 2020-06-09 [SC] [expires: 2021-06-09]
CCC470AE787C057557F421488C4C951E4CE081A5
uid [ultimate] Your Name <youremail@domain>
ssb rsa4096/1EA965889861C1C0 2020-06-09 [E] [expires: 2021-06-09]
Phần 8A5C011E4CE081A5
sau sec rsa4096/
là định danh của khóa.
$ gpg --full-gen-key
$ gpg --list-secret-keys --keyid-format LONG <youremail@domain>
$ gpg --armor --export [keyid]
Sao chép khối khóa công khai và thêm nó vào cài đặt GitHub / GitProviderOfChoice của bạn dưới dạng khóa GPG.
Thêm danh tính vào cấu hình Git. Cũng lặp lại điều này cho mỗi danh tính bạn muốn thêm:
Lưu ý: ở đây tôi sử dụng gitlab
để đặt tên cho danh tính của tôi, nhưng từ câu hỏi của bạn nó có thể là bất cứ điều gì, ví dụ: gitolite
hoặc github
, work
vv
$ git config --global user.gitlab.name "Your Name"
$ git config --global user.gitlab.email "youremail@domain"
$ git config --global user.gitlab.signingkey [keyid]
Thiết lập danh tính cho một kho lưu trữ
Nếu một repo mới không có danh tính được liên kết, một lỗi sẽ xuất hiện khi cam kết, nhắc bạn thiết lập nó.
*** Please tell me who you are.
## parts of message skipped ##
fatal: no email was given and auto-detection is disabled
Chỉ định danh tính bạn muốn trên một kho lưu trữ mới:
$ git identity gitlab
Bây giờ bạn đã sẵn sàng cam kết với danh tính gitlab .