2013-04-24 143 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