【问题标题】:GPG sign all git commits without stashGPG 签署所有没有存储的 git 提交
【发布时间】:2014-08-17 04:32:21
【问题描述】:

git 2.0 有一个配置选项commit.gpgsign,它将签署所有提交。

这也适用于git stash,并会询问我的 gpg 密钥的密码。

有没有一种方法可以自动签署所有提交、标签……但排除隐藏?

【问题讨论】:

  • GPG 是否没有像ssh-agent 这样的用于 SSH 的凭证存储?
  • @Cupcake:gpg-agent 会缓存凭据,但由于通常在最后一次提交和存储之间有一段时间,它会(并且应该)再次询问。

标签: git gnupg sign git-stash


【解决方案1】:

这是别名领土:

git config --global alias.stashq '-c commit.gpgsign=false stash'

【讨论】:

  • GPG 是否没有像ssh-agent 这样的用于 SSH 的凭据存储?
【解决方案2】:

我喜欢 jthill 的回答,只是想提供一个稍微不同的选项,这样您就不必学习输入新命令。您可以像这样在 .bashrc 中定义一个 shell 函数:

git() {
  case $1 in
    stash) set -- -c commit.gpgsign=false "$@" ;;
  esac
  command git "$@"
}

现在,当您运行 git stash 时,shell 函数会在调用 git 二进制文件之前插入额外的参数。

【讨论】:

  • 我很久以前就赞成了,但我想指出,如果您向 git 命令本身提供任何选项,则仅使用 $1 是行不通的,例如,您可以 git -C ~/other/repo push 运行 push在另一个仓库中。
  • @jthill 确实,谢谢,如果这是一个问题,那么你的答案是更好的方法。
猜你喜欢
  • 1970-01-01
  • 2016-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-21
  • 2012-06-01
  • 2022-08-03
  • 1970-01-01
相关资源
最近更新 更多