2013-01-08 76 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