We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
本文适用于使用Git做VCS(版本控制系统)的场景。
用过Git的程序猿,都喜欢其分布式架构带来的commit快感。不用像使用SVN这种集中式版本管理系统,每一次提交代码,都要为代码冲突捏一把冷汗。 频繁commit的背后,带来的结果是一长串密密麻麻的提交记录。 一旦项目出现问题,需要检查某个节点的代码问题,就会有点头疼。 虽然有commit message,但还是有存在查找困难和描述不清的问题。
commit
commit message
本文的侧重点,就是通过Git的打标签功能git tag来解决这个问题,并用SemVer(语义化版本控制规范)规范标签的命名。
git tag
打标签的作用,就是给项目的开发节点,加上语义化的名字,也即功能版本的别名。 打上标签名的同时,写上附带信息,可以方便项目日后维护过程中的回溯和复查。 另外,也可以通过标签记录,大致了解当前项目的向下兼容性、API的修改和迭代情况。
一般推荐打带附注信息的标签,这样可以最大限度的查看标签版本的修改情况。
// 命令格式 git tag -a 标签名 -m "附注信息" // 示例 git tag -a v0.1.0 -m "完成了文章a和文章b的撰写,耗费时间2h,感觉棒棒的!"
一份文集等待出版,有a、b、c、d四篇。 现在通过Git管理进度。
a、b、c、d
a.txt
b.txt
仓库图表如下:
master -> * 添加b.txt | * 添加a.txt | * 初始化
// 打标签 git tag -a v0.1.0 -m "完成了文章a和文章b的撰写,耗费时间2h,感觉棒棒的!" // push 标签到远程仓库 git push origin v0.1.0
master v0.1.0 -> * 添加b.txt | * 添加a.txt | * 初始化
c.txt
d.txt
master -> * 添加d.txt | * 添加c.txt | v0.1.0 -> * 添加b.txt | * 添加a.txt | * 初始化
// 打标签 git tag -a v1.0.0 -m "文集完成,共4篇文章,等出版�。" // push 标签到远程仓库 git push origin v1.0.0
master v1.0.0 -> * 添加d.txt | * 添加c.txt | v0.1.0 -> * 添加b.txt | * 添加a.txt | * 初始化
v0.1.0
// 输出v0.1.0的详情 git show v0.1.0 // 输出结果 tag v0.1.0 Tagger: wall <[email protected]> Date: Wed May 23 15:57:13 2018 +0800 完成了文章a和文章b的撰写,耗费时间2h,感觉棒棒的! commit 7107eb8b3f870cd864e3eb5b14f26184d73dd1e6 (tag: v0.1.0) Author: wall <[email protected]> Date: Wed May 23 15:27:10 2018 +0800 添加b.txt diff --git a/src/b.txt b/src/b.txt new file mode 100644 index 0000000..f9ee20e --- /dev/null +++ b/src/b.txt
这里,可以清晰地看到当时打标签的内容和附注信息。 还有另外一个方便的点,就是不需要用hash字符串表示的版本号去查看更改。
以下是用版本号查询的结果:
// 用版本号查看 git show 7107eb8b3f870cd864e3eb5b14f26184d73dd1e6 // 输出结果 commit 7107eb8b3f870cd864e3eb5b14f26184d73dd1e6 (tag: v0.1.0) Author: wall <[email protected]> Date: Wed May 23 15:27:10 2018 +0800 添加b.txt diff --git a/src/b.txt b/src/b.txt new file mode 100644 index 0000000..f9ee20e --- /dev/null +++ b/src/b.txt @@ -0,0 +1 @@ +This is B. \ No newline at end of file
像上文的栗子,可以看出使用了v0.1.0和v1.0.0打标签。 其实,这里是遵循了一套语义化版本控制规范(Semantic Versioning)。
v1.0.0
规范的概要如下:
版本格式:主版本号.次版本号.修订号,版本号递增规则如下: 主版本号:当你做了不兼容的 API 修改, 次版本号:当你做了向下兼容的功能性新增, 修订号:当你做了向下兼容的问题修正。 先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
为什么要有这套规范,就是为了避免软件管理的领域里存在的,称为“依赖地狱”的死亡之谷。
规范详情,可以在下面的参考链接获取。
[1] 语义化版本2.0
The text was updated successfully, but these errors were encountered:
No branches or pull requests
前言
用过Git的程序猿,都喜欢其分布式架构带来的
commit
快感。不用像使用SVN这种集中式版本管理系统,每一次提交代码,都要为代码冲突捏一把冷汗。频繁
commit
的背后,带来的结果是一长串密密麻麻的提交记录。一旦项目出现问题,需要检查某个节点的代码问题,就会有点头疼。
虽然有
commit message
,但还是有存在查找困难和描述不清的问题。本文的侧重点,就是通过Git的打标签功能
git tag
来解决这个问题,并用SemVer(语义化版本控制规范)规范标签的命名。一、打标签
打标签的作用,就是给项目的开发节点,加上语义化的名字,也即功能版本的别名。
打上标签名的同时,写上附带信息,可以方便项目日后维护过程中的回溯和复查。
另外,也可以通过标签记录,大致了解当前项目的向下兼容性、API的修改和迭代情况。
1.1 打标签命令
一般推荐打带附注信息的标签,这样可以最大限度的查看标签版本的修改情况。
1.2 举个栗子
commit
操作,添加a.txt
和b.txt
后,将代码修改push到远程仓库。仓库图表如下:
仓库图表如下:
commit
操作,添加c.txt
和d.txt
后,将代码修改push到远程仓库。仓库图表如下:
仓库图表如下:
v0.1.0
版本的情况这里,可以清晰地看到当时打标签的内容和附注信息。
还有另外一个方便的点,就是不需要用hash字符串表示的版本号去查看更改。
以下是用版本号查询的结果:
1.3 归纳优缺点
二、语义化版本控制规范
像上文的栗子,可以看出使用了
v0.1.0
和v1.0.0
打标签。其实,这里是遵循了一套语义化版本控制规范(Semantic Versioning)。
规范的概要如下:
为什么要有这套规范,就是为了避免软件管理的领域里存在的,称为“依赖地狱”的死亡之谷。
规范详情,可以在下面的参考链接获取。
三、参考
[1] 语义化版本2.0
The text was updated successfully, but these errors were encountered: