Eclipse贡献者

Eclipse基金会项目的IP/版权要求

本页说明向eclipse/deeplearning4j github代码库中的项目贡献代码所需的步骤:https://github.com/eclipse/deeplearning4j

贡献者(任何想将代码提交到存储库的人)在合并他们的代码之前需要做两件事:

  1. 签署Eclipse贡献者协议(一次)

  2. 签署提交(每次)

为什么这是必需的?

所有Eclipse基础项目都必须满足这两个要求,而不仅仅是DL4J和ND4J: https://projects.eclipse.org/

通过签署ECA,你实际上是在明确你提交的代码是你编写的,或者你有权为项目做出贡献。这是避免版权问题的必要法律保护。

通过签署你的提交,你可以明确该特定提交中的代码是你自己的。

签署Eclipse贡献者协议

你只需要签署一次Eclipse贡献者协议(ECA)。流程如下:

步骤1:注册Eclipse帐户

可以在这里完成 https://accounts.eclipse.org/user/register

注意:你必须使用与你的github帐户(要提交请求的GitHub帐户)相同的电子邮件进行注册。

步骤2:签署ECA

https://accounts.eclipse.org/user/eca 并按说明操作。

签署你的提交

签署一个新的提交

有几种方法可以签署提交。请注意,你可以使用这些选项中的任何一个。

选项1:在命令行提交时使用 -s

在这里签署提交很简单:

git commit -s -m "My signed commit"

注意,-s(小写s)-大写S(即,-S)用于GPG签名(见下文)。

选项2:设置Bash别名(“或Windows cmd别名”)用于自动签署

例如,可以在bash中设置以下别名:

alias gcm='git commit -s -m'

然后提交将使用以下操作完成:

gcm "My Commit"

对于Windows命令行,可以通过一些机制使用类似的选项(请参见此处

一种简单的方法是创建包含以下内容的gcm.bat文件,并将其添加到系统路径中:

@echo off
echo.
git commit -s -m %*

然后,你可以使用与上面相同的过程提交(即gcm“My commit”)

选项3: 使用GPG签署

要获取GPG签署详情,查看此链接

注意,这个选项可以与别名组合使用(见上文),如alias gcm=-git commit-S-m'-注意GPG签署的大写字母-S。

选项4: 使用带自动签署的IntelliJ提交

可用于执行git提交,包括通过签署提交。有关详细信息,请参阅本页

检查提交是否已签署

在执行提交之后,你可以使用几种不同的方法进行签入。一种方法是使用git log--show signature-1来显示最后一次提交的签署(例如,使用-5来显示最后5次提交)

输出如下:

$ git log --show-signature -2
commit 81681455918371e29da1490d3f0ca3deecaf0490 (HEAD -> commit_test_branch)
Author: YourName <you@email.com>
Date:   Fri Jun 21 22:27:50 2019 +1000

    This commit is unsigned

commit 2349c6aa3497bd65866d7d0a18fe82bb691bb868
Author: YourName <you@email.com>
Date:   Fri Jun 21 21:42:38 2019 +1000

    My signed commit

    Signed-off-by: YourName <you@email.com>

顶部提交是未签署的,而底部提交是已签署的(请注意存在已签名者)。

如果你忘了签署一个提交-修改最后一个提交

如果忘记签署上次提交,可以使用以下命令:

git commit --amend --signoff

如果你忘记了签署多次提交

假设你的分支有3个新提交,所有提交都是未签署的:

$ git log -4 --oneline
4b164026 (HEAD -> commit_test_branch) Your new commit 3
d7799615 Your new commit 2
6bb6113a Your new commit 1
ef09606c This commit already exists

一个简单的方法是压缩并签署这些提交。要在最后3次提交时执行此操作,请使用以下命令:(注意,可能需要先进行备份)

git reset --soft HEAD~3
git commit -s -m "Squashed and signed"

结果:

$ git log -2 --oneline
31658e11 (HEAD -> commit_test_branch) Squashed and signed
ef09606c This commit already exists

你可以使用如前所示显示git log -1 --show-signature来确认提交已签署。

请注意,一旦将提交合并为master,你的提交将被粉碎,因此丢失提交历史并不重要。

如果你正在更新现有的PR,则可能需要强制使用 -f(如git push X -f)。

最后更新于