我想得到我的Git存储库的提交数量,有点像SVN版本号.
目标是将其用作唯一的递增构建号.
我目前在Unix/Cygwin/msysGit上喜欢这样:
git log --pretty=format:'' | wc -l
Run Code Online (Sandbox Code Playgroud)
但我觉得这有点像黑客.
有没有更好的方法呢?如果我真的不需要wc甚至是Git 会很酷,所以它可以在裸Windows上工作.只需读取文件或目录结构......
我知道没有关于软件版本控制的固定规则,但我有几个问题.
1)如何正确升级版本
我有一个小软件,我刚刚开始,因为我从头开始,我开始使用0.1版本.
随着我添加了更多功能,我一直在升级次要号码.现在我在v0.5.7(次要(.5)用于新功能和修订版(.7)进行错误修复和微小更改),事情是该程序几乎完成分发,但现在我"失踪" "几个小版本,你们如何处理这种情况?你只是跳过数字吗?
这让我想到了第二个问题.
2)哪个是好的起始版本号
我即将开始一个新项目.这个时间并不是一个小项目,并且将公开并且可以免费修改,我不希望遇到上述问题.那么这将是一个很好的起点?
奖金问题:
3)数字大于10可以吗?像v1.25或v2.2.30?
我没有看到带有这种编号的软件(可能只在帮助部分或他们的网页中显示它),再次我知道没有规则,但似乎有一般同意如何保留版本号.
我们使用git来管理我们的项目,每个都有一个分支:dev staging production
我想使用git标签来管理软件的版本.据我所知,如果我在一个分支上并添加一些提交,那么我必须运行:git tag 1.0
使用我们所需的任何版本号来重复1.0,然后我可以使用:git push origin 1.0来推送标签
我可以使用:git push --tags更新分支
但是我现在如何重复使用标签?如果我将更多代码提交到我的本地存储库并希望它很容易成为1.0版本?或者你只是添加一个像1.1的新标签?
此外,如果我的同事在他的本地存储库中使用相同的标记名称并且我们都推送相同标记的代码,会发生什么?
最后,如果我们在不运行git标记来标记提交的情况下意外推送我们的代码会发生什么.
我并没有真正了解标签是如何工作的,我认为它们会像标记博客文章或其他东西一样工作 - 您可以使用相同的标签标记许多不同的提交并重复使用标签等.我猜这类似于分支.
我正在尝试确定一个良好的发布管理系统,并结合使用版本号标记的标记实践 - 例如,1.0.该标记之后的任何更改都会增加,如1.0-1,1.0-2等.
但是,如果我从master for 1.0版本创建一个新分支,然后切换到该分支并将其标记为1.0,则上述系统工作正常.该分支上的其他错误修复按预期显示,1.0-1,1.0-2
但是,除非我在制作1.0分支后第一次提交后重新标记主服务器,否则对主服务器的任何工作也将显示相同的增量:1.0-1,1.0-2
当然,sha1哈希将是唯一的,但我最终会从master和branch获得相同的修订/增量.
当我只标记分支时,有没有办法避免master被标记?有没有更好的方法呢?现在,我在创建分支1.0之后的唯一选择是在master上进行一次小的提交,然后为1.1-dev或其他东西重新标记它.
然后重复每个版本.
但是,如果再对一个分支进行标记,比如1.0.1版本,那么它似乎也会标记master,因为那是先发生的事情?
如果你只能使用一次标签(通过提交唯一),我该如何处理标签" Version 7.3"中的7次提交?
我讨厌GIT没有修改版本号(如SVN :)).
我猜一个子问题是:
"控制"版本号的最佳做法是什么(ex修订版,所以我想major.minor在每个提交中保存并且在每个分支中确定(我为每个小部分制作> = 1个分支)).
第一个问题有一个事实答案(我认为).
第二个是更好的最佳实践调查.
非常感激!我从stackoverflow FTW学到了很多GIT!