【问题标题】:How do you approach signing git commits on many machines?你如何在多台机器上签署 git 提交?
【发布时间】:2021-02-25 20:23:37
【问题描述】:

假设我有 dot 文件和 2 台计算机

  1. 家用电脑
  2. 作业计算机

我已经配置了git,像这样(灵感来自https://dev.to/chakrit/multiple-identity-gitconfig-with-gpg-signing-8c0

# default case
[include]
  path = config.personal

# when working with company-x
[includeIf "gitdir:**/company-x/**/.git"]
  path = config.company-x

配置文件在哪里

# home config
[user]
  name = Firstname Lastname
  email = firstname.lastname@home.example.net
  signingkey = some-key1

# job config
[user]
  name = Firstname Lastname
  email = firstname.lastname@job.example.net
  signingkey = some-key2

只要我在所有机器上都有some-key1some-key2 GPG 密钥,它就可以工作,但我不能,可以吗? 那么有什么方法呢?

我是否应该为所有计算机单独生成所有密钥(如https://docs.gitlab.com/ee/user/project/repository/gpg_signed_commits/#generating-a-gpg-key)?

我应该以某种方式共享我的主密钥还是在我的工作计算机上生成它?

我应该用我的公司密钥和电子邮件签署我的个人项目吗?我宁愿不。 我希望在我的个人项目中包含我的个人电子邮件,无论我在哪台计算机上进行了提交。

【问题讨论】:

  • 您当然可以在多台计算机上使用相同的密钥,但是……这似乎是个坏主意,是的。 :-)

标签: git git-commit gnupg sign dotfiles


【解决方案1】:

我应该为所有计算机单独生成所有密钥

这被认为是最佳实践,即因为:

  • 您可以根据使用的特定密钥查看提交的位置
  • 您可以撤销一个密钥(和update it)而不会使其他所有密钥失效。

如果您希望您的所有项目:

  • 在同一条路径上company-x
  • 使用相同的全局配置(每台机器使用不同的密钥)

您可能会考虑,Git 2.23+ 使用不同的分支 名称,每台机器一个(main-machine1main-machine2,...),每个都推送到常规远程跟踪 @987654326 @他们各自的仓库。
这是因为条件配置文件也可以将分支 name 用于其includeIf 指令。

【讨论】:

    猜你喜欢
    • 2020-09-25
    • 2012-10-14
    • 1970-01-01
    • 2011-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多