Ven*_*nus 16 git format config
我的客户端git版本是1.7.0.4.
我想在提交消息时在提交日志消息的末尾为提交者自动添加"Signed-off-by"行.
git config --global format.signoff true
并运行时git commit -m "modify something"
,我看不到"签名关闭"了git log
.git commit -m -s "modify something"
,那么"Signed-off-by"会显示出来git log
.有人可以帮忙吗?
小智 14
您可以通过创建一个文件(例如"〜/ MYPROJECT/git-template")在项目中默认签收,该文件包含一些空行和签名关闭文本,如下所示:
Signed-off-by: Your Name <your.email@example.com>
Run Code Online (Sandbox Code Playgroud)
然后配置git以将其用作提交模板.例如:
git config commit.template ~/MYPROJECT/git-template
Run Code Online (Sandbox Code Playgroud)
确保您的项目文档在某个地方签署项目的签约方式.这里有一些文本可以复制到您的CONTRIBUTING.md文件中:
所有贡献(包括拉取请求)必须同意开发人员原产地证书(DCO)1.1版.这与Linux内核开发人员创建和使用的内容完全相同,并发布在http://developercertificate.org/上.这是开发人员的认证,他或她有权提交补丁以包含在项目中.简单地提交贡献意味着此协议,但是,请在每个补丁中包含"签名 - 签署"标记(此标记是确认您同意DCO的传统方式).
ste*_*nct 11
现在有一种简单的方法可以使用挂钩和git-interpret-trailers
命令自动注销尚未注销的任何提交.在即将发布的git版本2.15中,该命令允许轻松检查现有的签名(无论其值/作者是什么),如果还没有,则添加你的签名.截至2017年10月,所需的代码尚未在任何git版本中(但在其master
分支中)!
将以下内容另存为.git/hooks/prepare-commit-msg
或.git/hooks/commit-msg
(请参阅此处了解差异)并使其可执行.
#!/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"
Run Code Online (Sandbox Code Playgroud)
更新Git 2.14.x/2.15:正如我在" Git - 检测提交是否以编程方式签名 "中提到的,您将能够解析提交消息预告片Signed-off-By
行.
"
git interpret-trailers
"已经被教授了一个"--parse
"以及一些其他选项,以使脚本更容易从提交日志消息中获取现有的预告片行.
见stefanct的回答对commit-msg
客户端钩它将使用git interpret-trailers
.
原始答案(2013)
format.signoff
是关于补丁(例如,在此补丁中说明):
format.signoff
Run Code Online (Sandbox Code Playgroud)
一个布尔值,允许您启用
format-patch
默认情况下的-s/ - signoff选项
它没有任何影响git commit -s
.
换句话说,您不必签署每个提交,但是当您将它们作为补丁发布给其他人使用时(如" git:submitting patches "),那么您应该签名.
有关确切含义Signed-of-by
,请参阅" Git中的 " 注销功能是什么? ".
归档时间: |
|
查看次数: |
8667 次 |
最近记录: |