Git版本控制约定
我有一个用Git跟踪的项目。在大多数情况下,我对Git范式没有任何问题,但有一个问题我还没有完全弄清楚。目前,myGit版本控制约定,git,versioning,Git,Versioning,我有一个用Git跟踪的项目。在大多数情况下,我对Git范式没有任何问题,但有一个问题我还没有完全弄清楚。目前,mymaster分支指向将在某个时间发布的代码。主题分支在准备就绪后会合并到master,并合并到develope中,以测试它们是否与其他开发代码一起工作。(顺便说一下,我试过Git Flow,但不喜欢。) 此方案的问题在于,从master或develope生成的版本似乎与上一个稳定版本具有相同的版本,因为我在标记版本之前增加了版本。我不想这样——我想让不稳定的代码这样引用它自己!我的问
master
分支指向将在某个时间发布的代码。主题分支在准备就绪后会合并到master
,并合并到develope
中,以测试它们是否与其他开发代码一起工作。(顺便说一下,我试过Git Flow,但不喜欢。)
此方案的问题在于,从
master
或develope
生成的版本似乎与上一个稳定版本具有相同的版本,因为我在标记版本之前增加了版本。我不想这样——我想让不稳定的代码这样引用它自己!我的问题:提交版本颠簸的流行和/或可用约定是什么?此外,可以使用哪些分支和标记模型来避免这种情况?我喜欢一些简单的东西,因为我的项目不够大,不能保证一个大的Linux内核样式模型:)。语义版本控制很流行-语义版本控制很流行-你应该看看它是如何在Linux内核中实现的
基本上,此脚本尝试从最近的标记提交猜测版本。如果标记了当前提交,则此标记将被视为干净版本。
否则,它会将当前提交短sha附加到标记以成为一个版本。
若当前树有任何未提交的更改,它可能会在上面附加字符串“dirty”
请注意,这是一个稍微简化的解释(实际上,它也会在mainMakefile
中查找版本号)
其他一些工具也采用了类似的版本控制方法,值得注意的是。您应该看看Linux内核中的版本控制方法 基本上,此脚本尝试从最近的标记提交猜测版本。如果标记了当前提交,则此标记将被视为干净版本。 否则,它会将当前提交短sha附加到标记以成为一个版本。 若当前树有任何未提交的更改,它可能会在上面附加字符串“dirty” 请注意,这是一个稍微简化的解释(实际上,它也会在main
Makefile
中查找版本号)
其他一些工具也采用了类似的版本控制方法,尤其是。哎呀,我想我的问题确实得到了这种类型的回答。我见过语义版本控制,也很喜欢它。但是,我想知道如何管理Git提交,以便开发代码本身(在版本号中)引用它。我已经更新了我的问题。哎呀,我想我的问题确实得到了这样的回答。我见过语义版本控制,也很喜欢它。但是,我想知道如何管理Git提交,以便开发代码本身(在版本号中)引用它。我更新了我的问题。太棒了,太棒了!一个问题:这是git钩子吗?还是在构建时运行?我相信这是构建时。那么原始git树使用什么作为其版本呢?我认为它将默认为main
Makefile
中的版本。如果找不到任何内容,请阅读脚本,它没有那么复杂。我读了剧本,基本上理解了它的作用。我还有最后一个问题:您建议我如何使用git archive创建tarball?那时将没有.git目录,因此脚本不会询问版本。太棒了,太棒了!一个问题:这是git钩子吗?还是在构建时运行?我相信这是构建时。那么原始git树使用什么作为其版本呢?我认为它将默认为mainMakefile
中的版本。如果找不到任何内容,请阅读脚本,它没有那么复杂。我读了剧本,基本上理解了它的作用。我还有最后一个问题:您建议我如何使用git archive创建tarball?那时将没有.git目录,因此脚本不会询问版本。