2014-02-17 92 views
0

我一直在使用Git幾個月,並且已經慢慢地自動化我們的過程,所以我們不需要做太多的手動工作來部署我們的更改。Git日誌列表提交特定於某個日期

我一直在使用Git的--since選項,從我可以告訴會與此確切語法工作:--since = {} 2014年2月3日

的問題是,它從來沒有名單那天的所有提交都會提交。它列出了大部分,但不是全部。而且,從我能告訴它錯過當天最古老的提交。有時2或3,但最後一個似乎是一致的。

我也合併了一些來自另一個回購的提交,並且事情也有所改進。我的理論是選擇是基於2個不同回購協議分配的哈希值,因此落在我選擇的範圍內。我正在使用散列來選擇一個範圍。我也遇到過麻煩。

我的目標是執行一個日誌命令,最終爲我提供尚未部署的提交。我使用shell腳本來提取文件並生成一個可部署的目錄,然後將其複製到目標服務器,然後複製到它們的Web根目錄。

謝謝!

回答

0

--since--until(或其同義詞)的一個問題是時區的東西。存儲在提交的日期是UTC,但是在當地時間顯示:

author ... 1385598279 -0700 

$ date -r 1385598279 
Wed Nov 27 17:24:39 MST 2013 
$ TZ=UTC date -r 1385598279 
Thu Nov 28 00:24:39 UTC 2013 

那麼,什麼天是 1385598279? 27日還是28日?取決於我是否在鹽湖城,倫敦或其他地方。

(也有上一年的一個一天兩個2:30 AMS,而在另一天無2:30的AM。)

你可能會更好保存SHA-1爲每個部署的版本。 SHA-1保證是唯一的,並且會識別確切的版本。給定兩個提交SHA-1,你可以通過在這些文件上運行git diff來準確判斷它們之間的變化。

+0

這是我從上面的命令得到的:date -r 1385598279 Wed Nov 27 18:24:39 CST 2013我在CST時區。我不包括它的時間。我想知道這是否是問題?我只是按照上面指出的方式使用日期。只要日間部分匹配,它應該工作。 – freshpowder