2013-04-24 111 views
3

是否有可能当推操作已经在仓库进行查看,特别是在Github?的Git - Github上推历史

我们有一个编译环境(詹金斯)对各种事件,自动构建我们的产品:

  • 当用户在Github上推新提交
  • 每天晚上
  • 当用户请求

我希望能够确定它的确切提交已被用来建立这些软件包(版本是最终在詹金斯自动删除,所以我不能”靠詹金斯BU ild),知道我有构建日期和时间。

虽然大部分的时间,我就可以查找在Git中,有时,一个开发者所做的更改,并在本地COMMITED他们,但一直没有推开那些在GitHub上。之后他推动他的更改时,无法确定构建软件包的源代码。

+0

好问题。我不认为有一种方法可以说明推送操作,特别是推送操作的人员,因为它不必是提交作者的同一用户。如果git遥控器有推送历史日志,那会很好。 – 2014-09-11 16:22:03

回答

1

其实,我发现詹金斯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环境变量足以追查编译打包的代码。

1

嗯,我想最简单的方法是詹金斯做出来。

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

否则,你必须建立其向您发送电子邮件时的东西推到你的资料库钩。

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

没有为电子邮件工作流挂钩的部分。

0

似乎有可能跟踪Github's Repo Hooks API推,尽管我没有使用它们。

对于非GitHub的git仓库:

在情况下,当一个分支得到了由git push更新,可能是不裸,.git/logs/refs/heads/<branch name>记录。 (注意:在某些情况下会修剪文件。)

不确定如何直接在裸回购中检查此问题,因为它们不保留引用日志。如果我必须跟踪这个,我会看看git hooks