4

是否可以查看何时在存储库上执行推送操作,尤其是在 Github 上?

我们有一个构建环境(Jenkins),它可以根据各种事件自动构建我们的产品:

  • 当用户在 Github 上推送新提交时
  • 每晚
  • 根据用户要求

我希望能够确定用于构建这些包的确切提交(构建最终会在 Jenkins 中自动删除,所以我不能依赖 Jenkins 构建),因为我知道我有构建的日期和时间。

虽然大多数时候,我可以在 git 中查找,但有时,开发人员已经进行了更改并在本地提交了它们,但没有将它们推送到 github 上。当他稍后推送他的更改时,就不可能知道使用什么源代码来构建包。

4

3 回答 3

1

实际上,我发现 Jenkins Git 插件会自动设置以下可以在构建脚本中使用的环境变量:

GIT_COMMIT - SHA of the current
GIT_BRANCH - Name of the branch currently being used, e.g. "master" or "origin/foo"
GIT_PREVIOUS_COMMIT - SHA of the previous built commit from the same branch (the current SHA on first build in branch)
GIT_URL - Repository remote URL
GIT_URL_N - Repository remote URLs when there are more than 1 remotes, e.g. GIT_URL_1, GIT_URL_2
GIT_AUTHOR_EMAIL - Committer/Author Email
GIT_COMMITTER_EMAIL - Committer/Author Email

简单地引用GIT_COMMIT环境变量就足以追踪编译和打包的代码。

于 2014-08-15T10:12:55.680 回答
1

嗯,我认为最简单的方法是使用 Jenkins。

您可以为 Jenkins 设置不同的通知方式。可以看到每个提交。我们将它与 XMPP 扩展一起使用,它非常有用。但为此,您必须运行 jenkins。

否则,您必须构建一个挂钩,当有东西推送到您的存储库时,它会向您发送一封电子邮件。

http://git-scm.com/book/en/Customizing-Git-Git-Hooks

有一个电子邮件工作流挂钩部分。

于 2013-04-24T19:17:00.080 回答
0

似乎可以使用Github 的 Repo Hooks API跟踪推送,但我没有使用它们。

对于非 github git repo:

如果它不是裸露.git/logs/refs/heads/<branch name>的,则记录分支何时更新,可能是git push. (注意:文件在某些​​情况下会被修剪。)

不知道如何在裸仓库中直接检查这个,因为他们不维护 reflogs。git hooks如果我必须跟踪这一点,我会看看。

于 2013-04-24T19:23:13.283 回答