是否可以查看何时对存储库执行推送操作,特别是在Github上?
我们有一个构建环境(Jenkins),可以根据各种事件自动构建我们的产品:
我希望能够确定用于构建这些软件包的确切提交(构建最终会在Jenkins中自动删除,所以我不能'依赖于Jenkins构建),知道我有日期和时间建立。
虽然大多数时候,我只能查看git,有时候,开发人员已经做出了更改并且已经在本地提交了它们,但是还没有将它们推到github上。当他后来推动他的更改时,就无法确定使用什么源代码来构建包。
答案 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
。