您如何在多台机器上签署 git 提交?

How do you approach signing git commits on many machines?

假设我有点文件和 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)单独生成所有密钥?

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

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

Should I separately generate all keys for all computers

这被认为是最佳做法,即因为:

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

如果您希望所有项目:

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

您可能会考虑, 使用不同的 分支 名称,每台机器一个(main-machine1main-machine2、...) ,每个人都推送到各自回购的常规远程跟踪 origin/main
这是因为条件配置文件也可以使用分支 name 作为其 includeIf 指令。