Git - Github推动历史

时间:2013-04-24 19:09:06

标签: git github

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

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

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

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

虽然大多数时候,我只能查看git,有时候,开发人员已经做出了更改并且已经在本地提交了它们,但是还没有将它们推到github上。当他后来推动他的更改时,就无法确定使用什么源代码来构建包。

3 个答案:

答案 0 :(得分:1)

嗯,我认为最简单的方法是与詹金斯合作。

您可以为Jenkins设置不同的通知方法。每个提交都可以看到。我们使用它与XMPP扩展非常有帮助。但为此你必须运行詹金斯。

否则,您必须构建一个钩子,当某些内容推送到您的存储库时,它会向您发送电子邮件。

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

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

答案 1 :(得分: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环境变量就足以跟踪已编译和打包的代码。

答案 2 :(得分:0)

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

对于非github git repo:

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

不确定如何在裸仓库中直接检查这个,因为它们不维护reflog。如果我必须跟踪这个,我会看一下git hooks