Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git版本控制约定_Git_Versioning - Fatal编程技术网

Git版本控制约定

Git版本控制约定,git,versioning,Git,Versioning,我有一个用Git跟踪的项目。在大多数情况下,我对Git范式没有任何问题,但有一个问题我还没有完全弄清楚。目前,mymaster分支指向将在某个时间发布的代码。主题分支在准备就绪后会合并到master,并合并到develope中,以测试它们是否与其他开发代码一起工作。(顺便说一下,我试过Git Flow,但不喜欢。) 此方案的问题在于,从master或develope生成的版本似乎与上一个稳定版本具有相同的版本,因为我在标记版本之前增加了版本。我不想这样——我想让不稳定的代码这样引用它自己!我的问

我有一个用Git跟踪的项目。在大多数情况下,我对Git范式没有任何问题,但有一个问题我还没有完全弄清楚。目前,my
master
分支指向将在某个时间发布的代码。主题分支在准备就绪后会合并到
master
,并合并到
develope
中,以测试它们是否与其他开发代码一起工作。(顺便说一下,我试过Git Flow,但不喜欢。)


此方案的问题在于,从
master
develope
生成的版本似乎与上一个稳定版本具有相同的版本,因为我在标记版本之前增加了版本。我不想这样——我想让不稳定的代码这样引用它自己!我的问题:提交版本颠簸的流行和/或可用约定是什么?此外,可以使用哪些分支和标记模型来避免这种情况?我喜欢一些简单的东西,因为我的项目不够大,不能保证一个大的Linux内核样式模型:)。

语义版本控制很流行-

语义版本控制很流行-

你应该看看它是如何在Linux内核中实现的

基本上,此脚本尝试从最近的标记提交猜测版本。如果标记了当前提交,则此标记将被视为干净版本。 否则,它会将当前提交短sha附加到标记以成为一个版本。 若当前树有任何未提交的更改,它可能会在上面附加字符串“dirty”

请注意,这是一个稍微简化的解释(实际上,它也会在main
Makefile
中查找版本号)


其他一些工具也采用了类似的版本控制方法,值得注意的是。

您应该看看Linux内核中的版本控制方法

基本上,此脚本尝试从最近的标记提交猜测版本。如果标记了当前提交,则此标记将被视为干净版本。 否则,它会将当前提交短sha附加到标记以成为一个版本。 若当前树有任何未提交的更改,它可能会在上面附加字符串“dirty”

请注意,这是一个稍微简化的解释(实际上,它也会在main
Makefile
中查找版本号)


其他一些工具也采用了类似的版本控制方法,尤其是。

哎呀,我想我的问题确实得到了这种类型的回答。我见过语义版本控制,也很喜欢它。但是,我想知道如何管理Git提交,以便开发代码本身(在版本号中)引用它。我已经更新了我的问题。哎呀,我想我的问题确实得到了这样的回答。我见过语义版本控制,也很喜欢它。但是,我想知道如何管理Git提交,以便开发代码本身(在版本号中)引用它。我更新了我的问题。太棒了,太棒了!一个问题:这是git钩子吗?还是在构建时运行?我相信这是构建时。那么原始git树使用什么作为其版本呢?我认为它将默认为main
Makefile
中的版本。如果找不到任何内容,请阅读脚本,它没有那么复杂。我读了剧本,基本上理解了它的作用。我还有最后一个问题:您建议我如何使用git archive创建tarball?那时将没有.git目录,因此脚本不会询问版本。太棒了,太棒了!一个问题:这是git钩子吗?还是在构建时运行?我相信这是构建时。那么原始git树使用什么作为其版本呢?我认为它将默认为main
Makefile
中的版本。如果找不到任何内容,请阅读脚本,它没有那么复杂。我读了剧本,基本上理解了它的作用。我还有最后一个问题:您建议我如何使用git archive创建tarball?那时将没有.git目录,因此脚本不会询问版本。