Cách tôi thiết lập danh tính Git của mình
(benji.dog)Cách thiết lập danh tính Git của tôi
-
Giới thiệu: Bài viết này giải thích cách quản lý danh tính phù hợp với môi trường làm việc thông qua cấu hình Git. Tác giả đã phát hiện ra cách dùng
includeIfđể bao gồm tệp theo các điều kiện cụ thể. -
Cấu hình Git:
- Có thể dùng
includeIfđể bao gồm các tệp cấu hình Git khác nhau tùy theo thư mục cụ thể. - Ví dụ, có thể cấu hình để các thư mục Git dưới
~/codebao gồm~/.config/git/personal, còn dưới~/workthì bao gồm~/.config/git/work. - Mỗi tệp chứa thông tin như tên người dùng, email, khóa ký và các dữ liệu tương tự.
- Có thể dùng
-
Cấu hình dựa trên URL remote:
- Có thể dùng
hasconfig:remote.*.urlđể cấu hình Git có điều kiện khi tồn tại một URL remote cụ thể. - Ví dụ, trong các thư mục có remote như
github.com:orgname/**, có thể cấu hình để dùng~/.config/git/config-gh-org.
- Có thể dùng
-
Thiết lập khóa SSH:
- Cần thiết lập khóa SSH để có thể
pullvàpushtới remote. - Trong tệp
~/.ssh/config, có thể thiết lậpHostvàIdentityFileđể dùng khóa SSH phù hợp cho từng remote. - Nếu muốn dùng các
IdentityFilekhác nhau cho cùng mộtHostname, cần đặt các giá trịHostkhác nhau.
- Cần thiết lập khóa SSH để có thể
-
Sử dụng thiết lập SSH trong Git config:
- Nếu muốn dùng cấu hình SSH khác nhau cho từng repository cụ thể, có thể dùng
insteadOftrong Git config để thay thế URL. - Ví dụ, có thể dùng
gh-work:orgnamethay chogithub.com:orgnameđể áp dụng đúng cấu hình SSH.
- Nếu muốn dùng cấu hình SSH khác nhau cho từng repository cụ thể, có thể dùng
-
Điểm cần cân nhắc:
- Cách tiếp cận này có thể có vấn đề, và tác giả muốn nhận phản hồi xem có phương pháp nào tốt hơn không.
Tài liệu tham khảo
- Tác giả đã tham khảo nhiều bài blog khác nhau về cách quản lý nhiều danh tính Git.
1 bình luận
Ý kiến Hacker News
Giải thích cách phân biệt danh tính SSH và Git bằng cách dùng tên
gh-work. Mọi kho Git được clone bằnggh-worksẽ tuân theo cấu hình củagh-work.incvà sử dụng cùng khóa ký như cấu hình SSHKhi làm việc tại một startup, có một đồng nghiệp mỗi ngày lại đổi danh tính sang một cái tên như trong truyện cổ tích. Điều này không giúp ích gì cho việc điều tra pháp y trong hệ thống quản lý phiên bản, nhưng có lẽ nhằm nhắc rằng có thể đưa bất cứ thứ gì vào cấu hình danh tính
Đề xuất thêm bí danh cho danh tính trong
.gitconfig, để sau khi khởi tạo hoặc clone kho lưu trữ có thể chạy lệnhgit config-companyhoặcgit config-personalGiải thích cách quản lý submodule dễ dàng bằng cách thiết lập lệnh SSH trong
~/.gitconfigmà không cần sửa~/.ssh/configGiới thiệu cách quản lý cấu hình Git theo từng thư mục bằng
includeIfvàhasconfig:remote. Cách này cũng hữu ích khi clone kho lưu trữVới các consultant, rất khuyến nghị nên dùng thiết bị riêng cho công việc hoặc ít nhất là một người dùng OS riêng. Dùng thiết bị cá nhân cho công việc có thể tiềm ẩn rủi ro
Giải thích cách quản lý cấu hình Git bằng NixOS và home-manager. Sử dụng điều kiện
hasconfig:remoteđể thiết lập email cụ thểGiải thích cách giữ phần phức tạp của SSH trong
~/.sshvà đưa vào các cấu hình riêng theo từng khách hàng hoặc dự án. Khi không có hostname như GitHub thì gán bí danhGiải thích cách tách biệt công việc và việc cá nhân bằng
gitdir.hasconfig:remotethực sự là yếu tố thay đổi cuộc chơiGiải thích cách tách riêng kho công việc và cá nhân vào
~/devvà~/srcđể quản lý. Tùy theo từng đường dẫn sẽ đưa vào các tệp cấu hình Git khác nhauGiải thích cách thiết lập các tệp
.gitconfigcho cá nhân và công việc để đặt email và khóa ký khác nhau. Bật ký GPG để ký các commitCách thiết lập danh tính Git của tôi