2013-01-08 99 views
1

我有一個使用Git跟蹤的項目。大多數情況下,我對Git範例沒有任何問題,但有一個問題我沒有弄清楚。目前,我的master分支指向將在某個時刻發佈的代碼。主題分支在準備好後合併到master中,並分成develop以測試它們是否與其他開發代碼一起工作。 (順便說一下,我試過Git Flow,不喜歡它)。Git版本控制約定

這個方案的問題是從masterdevelop的版本看起來與最後的穩定版本有相同的版本,因爲我增加了版本在標記發佈之前。我不想要這個 - 我想要不穩定的代碼來引用它本身!我的問題:什麼是流行和/或可用的慣例提交版本顛簸?另外,可以使用哪些分支和標記模型來避免這種情況?我喜歡簡單的東西,因爲我的項目不夠大,不能保證大的Linux內核樣式:)。

回答

1

你應該看看它是如何在Linux內核中的scripts/setlocalversion完成。

基本上,此腳本嘗試從最接近的標記提交中猜測版本。如果當前提交被標記,則該標記被視爲乾淨版本。 如果不是,則會將當前提交短符號添加到標記以成爲版本。 如果當前樹有任何未提交的更改,則可能會在其上添加字符串「dirty」。

請注意,這是一個稍微簡化的解釋(實際上它也在主要Makefile中查找版本號)。

其他一些工具也採用了類似的版本控制方法,特別是u-boot

+0

燦爛輝煌!一個問題:這是一個git鉤子嗎?還是在構建時運行? – thirtythreeforty

+0

我相信這是建立時間 – mvp

+0

嗯。那麼原始的git樹會使用什麼版本? – thirtythreeforty

0

語義版本很受歡迎 - http://semver.org/

+0

哎呀,我想我的問題確實徵求了這種迴應。我見過語義版本並喜歡它。但是,我想知道如何管理Git提交,以便開發代碼本身就是這樣(在版本號中)。我已經更新了我的問題。 – thirtythreeforty