3 điểm bởi GN⁺ 2024-11-26 | 1 bình luận | Chia sẻ qua WhatsApp

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 ~/code bao gồm ~/.config/git/personal, còn dưới ~/work thì 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ấ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.
  • Thiết lập khóa SSH:

    • Cần thiết lập khóa SSH để có thể pullpush tới remote.
    • Trong tệp ~/.ssh/config, có thể thiết lập HostIdentityFile để dùng khóa SSH phù hợp cho từng remote.
    • Nếu muốn dùng các IdentityFile khác nhau cho cùng một Hostname, cần đặt các giá trị Host khác nhau.
  • 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 insteadOf trong Git config để thay thế URL.
    • Ví dụ, có thể dùng gh-work:orgname thay cho github.com:orgname để áp dụng đúng cấu hình SSH.
  • Đ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

 
GN⁺ 2024-11-26
Ý 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ằng gh-work sẽ tuân theo cấu hình của gh-work.inc và sử dụng cùng khóa ký như cấu hình SSH

  • Khi 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ệnh git config-company hoặc git config-personal

  • Giải thích cách quản lý submodule dễ dàng bằng cách thiết lập lệnh SSH trong ~/.gitconfig mà không cần sửa ~/.ssh/config

  • Giới thiệu cách quản lý cấu hình Git theo từng thư mục bằng includeIfhasconfig: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 ~/.ssh và đư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í danh

  • Giải thích cách tách biệt công việc và việc cá nhân bằng gitdir. hasconfig:remote thực sự là yếu tố thay đổi cuộc chơi

  • Giải thích cách tách riêng kho công việc và cá nhân vào ~/dev~/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 nhau

  • Giải thích cách thiết lập các tệp .gitconfig cho cá nhân và công việc để đặt email và khóa ký khác nhau. Bật ký GPG để ký các commit

  • Cách thiết lập danh tính Git của tôi