2013-02-22 123 views
7

我的客户端git版本是1.7.0.4。git add使用format.signoff不行的Signed-off-by行不起作用

我想提交一条消息时,在提交日志消息的末尾为提交者自动添加一个“Signed-off-by”行。

  1. 当我设置git config --global format.signoff true,并运行git commit -m "modify something",我看到git log没有 “参团的off-by”。
  2. 如果我使用git commit -m -s "modify something",则“签名关闭”确实显示在git log中。

任何人都可以帮忙吗?

+0

还有人知道吗? – Venus 2013-02-22 06:40:25

回答

4

更新为Git 2.14.x/2.15:正如我在“Git - Detect if commit is signed off programmatically”中所述,您将能够解析Signed-off-By行的提交消息预告片。

git interpret-trailers”已经教了“--parse”和其他几个选项,使其更容易为脚本抢从提交日志信息中现有的拖车行。的answercommit-msg client-side hook它将使用git interpret-trailers

stefanct


原来的答复(2013年)

format.signoffabout patch(如图所示,例如,in this patch):

format.signoff 

一个布尔值,它可以让你启用-s/- -signoff选项format-patch默认

它对git commit -s没有影响。

换句话说,你不必签收每一个承诺,但是当你发布他们的补丁供他人使用(如“git: submitting patches”),然后应该签下他们。

关于Signed-of-by的确切含义,请参见“What is the Sign Off feature in Git for?”。

7

您可以签收默认情况下,一个项目通过创建一个文件(比如说“〜/ MYPROJECT/git的模板”),它包含了一些空行和签名-OFF-由文字是这样的:

Signed-off-by: Your Name <[email protected]> 

然后配置git使用它作为提交模板。例如:

git config commit.template ~/MYPROJECT/git-template 

确保您的项目文件这个项目什么地方签订过逐手段。这里有一些文字可以复制到您的CONTRIBUTING中。md文件:

所有贡献(包括拉取请求)必须同意 开发者证书源(DCO)版本1.1。 这与Linux内核开发人员 创建和使用的完全相同,并在http://developercertificate.org/上发布。 这是一个开发者的认证,他或她有权 提交补丁包含在项目中。 只需提交一份文稿就意味着本协议,但是,请在每个补丁 (此标签是确认您同意DCO的常规方式)中包含“签名关闭”标签 。

3

现在有一种简单的方法可以通过使用钩子和git-interpret-trailers命令自动签出尚未签名的任何提交。在即将推出的2.15版git中,该命令允许轻松地检查现有的签名(无论其值/作者是什么),并在没有签名时添加您的签名。截至2017年10月,所需的代码是而不是在任何git版本中(但在其master分支)!

将下列内容另存为.git/hooks/prepare-commit-msg.git/hooks/commit-msg(请参阅here了解其差异)并使其可执行。

#!/bin/sh 

NAME=$(git config user.name) 
EMAIL=$(git config user.email) 

if [ -z "$NAME" ]; then 
    echo "empty git config user.name" 
    exit 1 
fi 

if [ -z "$EMAIL" ]; then 
    echo "empty git config user.email" 
    exit 1 
fi 

git interpret-trailers --if-exists doNothing --trailer \ 
    "Signed-off-by: $NAME <$EMAIL>" \ 
    --in-place "$1" 
+0

很好地完成。 +1。我参考你的答案在我的更多的知名度,并参考https://stackoverflow.com/a/41361273/6309我在哪里提到'git interpret-trailers'。 – VonC 2017-10-08 06:45:25