我的客户端git版本是1.7.0.4。
当提交一条消息时,我想在提交日志消息的末尾自动为提交者添加一个“Signed-off-by”行。
1.当我设置git config --global format.signoff true
并运行git commit -m "modify something"
时,我在git log
中看不到“Signed-off-by”。
1.如果我使用git commit -m -s "modify something"
,那么git log
中会显示“Signed-off-by”。
有人能帮忙吗?
4条答案
按热度按时间xhv8bpkk1#
现在有一种简单的方法可以通过使用hook和
git-interpret-trailers
命令来自动签署任何尚未签署的提交。在即将到来的git 2.15版本中,该命令允许简单地检查现有的签名(无论其值/作者是什么),如果还没有,则添加您的签名。截至2017年10月,所需的代码尚未在任何git版本中(但在其master
分支中)!将下面的代码保存为
.git/hooks/prepare-commit-msg
或.git/hooks/commit-msg
(参见here了解差异)并使其可执行。ui7jx7zq2#
默认情况下,你可以在项目中创建一个文件(比如“~/MYPROJECT/git-template”),其中包含一些空行和如下的signed-off-by文本:
然后配置git使用它作为提交模板。例如:
确保您的项目 * 文件 * 的地方签署了什么-通过该项目的手段。以下是一些文本,您可以复制到您的CONTRIBUTING.md文件中:
所有贡献(包括拉取请求)必须同意开发人员来源证书(DCO)版本1.1。这与Linux内核开发人员创建和使用并发布在http://developercertificate.org/上的代码完全相同。这是开发人员的证书,证明他或她有权提交补丁以包含到项目中。简单地提交一个贡献意味着这个协议,但是,请包括一个“签字关闭”标签在每个补丁(这个标签是一个传统的方式,以确认您同意DCO)。
5kgi1eie3#
Git 2.14.x/2.15更新:正如我在“Git - Detect if commit is signed off programmatically”中提到的,你将能够解析
Signed-off-By
行的提交消息尾部。“
git interpret-trailers
”已经被教导了一个“--parse
”和一些其他选项,以使脚本更容易从提交日志消息中抓取现有的尾部行。参见stefanct的answer,了解使用
git interpret-trailers
的commit-msg
客户端钩子。原始答案(2013)
format.signoff
是about patch(如图所示,例如,in this patch):一个布尔值,允许您默认启用**
format-patch
*的-s/--signoff选项它与
git commit -s
没有关系。换句话说,你不必签署每一个提交,但是当你发布它们作为补丁供其他人使用时(如“git: submitting patches”), 那么 * 你应该签署它们。
关于
Signed-of-by
的确切含义,请参阅“What is the Sign Off feature in Git for?”。iyfamqjs4#
要自动将
--signoff/-s
选项添加到您在git仓库中进行的所有提交:然后取消注解最后一个代码块: