gitlab-CI中使用tag作为版本号硬编译进程序中

gitlab-CI中使用tag作为版本号硬编译进程序中,第1张

在使用gitlab过程中,我发现如果能直接将gitlab的tag与自动生成的软件版本做成一致的话,在后续的维护上会更加方便于是研究了一番如何将tag作为版本号硬编译进程序中的方法主要是一下几个方面:

指定只对tag生效

可以使用类似c++的方式,生成versiongo文件来实现,也可以编译命令中直接修改源文件中指定的值,比如:

versiongo中:

那么在gitlab-ciyml中就可以

即可将Version修改为当前tag

最近想把项目的git仓库版本作为项目版本来使用,就研究了下,做点笔记。

这里输出是unix时间戳,需要自己转换下,如果在shell中可以这么写

MacOS和Linux有差别,做个系统判断

这里使用 git log -1 --decorate=short --oneline ,输出

然后使用grep正则表达式配合awk、sed提取出了 v011

好了,就这些吧~

我们简单的描述一个例子:

a)初始化 *** 作

有两个文件file1txt和file2txt

1, 初始化的时候就有这两个文件

*** 作:

git init

git status

git add

git mit -m “init version”

2, 在master分支上修改了file1txt,并提交

*** 作:

(修改file1txt)

git add file1txt

git mit -m “change file1”

3, 然后新建分支banana,并切换到banana分支上

*** 作:

git branch banana

git checkout banana

4, 修改file1txt和file2txt,并提交。

*** 作:

(修改file1txt和file2txt)

git add file1txt file2txt

git mit -m “change by banana”

这个时候,我们可以输入 gitk,查看一下当前的版本情况。

如下图:git-001

5, 然后,切换到master分支上,修改file2txt,并提交。

*** 作:

git checkout master

(修改file2txt)

git add file2txt

git mit -m “change by master”

输入gitk,查看当前版本情况,如下图:git-002

b)发现问题需要查看历史版本

我们现在发现当前的版本有点问题,还不能提交到版本库。

1,我们需要从git mit中返回

则输入:

git reset --soft HEAD^

解释一下,HEAD是当前分支的最新版本。

^表示父节点。

当前节点的父节点,就是上一次提交的版本。

也就是标记为“change file1”的版本。

问为什么不是”change by banana”这个版本呢?不同的分支哦。

”change by banana”是banana分支的最新代码,和master分支不同的。

这个时候输入

git status

看看,是不是显示file2txt修改了没有提交呢。

2,我们需要从git add中返回

再仔细查看之后,我们发现file2txt真的写错了,需要返回到git add之前的状态。

输入:

git reset -q file2txt

这个时候,file2txt就回到了解放前了。

用git status查看一下,file2txt是”change not staged for mit”状态。

3,回到没有做过的情况

我们最终确定,最后一次修改的file2txt是无用的代码,我们需要废弃掉。

注意,这个 *** 作不能恢复的哦。

git reset --hard

这个命令,不能指定具体的文件。

是把当前的修改全部清除,恢复到最后一次提交的版本。

这个时候,用gitk查看一下:git-003

已经彻底回复到了“change file 1”的版本了。

4,直接回复到某个版本

我们现在切换到banana分支。

git checkout banana

然后用gitk看一下。

可以看出,我们之前的 *** 作,对banana分支一点影响也没有。

现在我们需要把banana分支回复到初始状态,但是当前的改动的代码还是需要留着。

我们可以看,init版本是当前版本的父节点的父节点。

我们可以这么 *** 作:

git reset --soft HEAD^^

然后用gitk看一下:git-004

最近的版本已经变成了init version了。

所有的改动都是add未提交状态。

5,得到当前最新代码

最后。

我们把file1txt和file2txt都删掉。

我们需要从版本库中取得当前最新的代码。

很简单:

git checkout master

如果是要banana分支的最新代码,则:

git checkout banana

以上的 *** 作,我们知道了如何查看版本分支,和如何回复到以前的版本。

周末闲着没事,专门针对 git 的命令 git tag 琢磨着玩,下面是它的基本常用方法,每个命令都是我亲自尝试过的,有些命令其实只需要一个就能达到同样的效果,只是 git 的功能太强大了,以至于我们可以使用很多不同的命令样式去达到某一个效果。

请看下面

查看本地分支标签

查看远程所有标签

给当前分支打标签

给特定的某个commit版本打标签,比如现在某次提交的id为 039bf8b

删除本地某个标签

删除远程的某个标签

将本地标签一次性推送到远程

将本地某个特定标签推送到远程

查看某一个标签的提交信息

只要把以上几个命令弄熟练了,平时发布版本后想 打标签 基本可以说是手到擒来了。

根据某个commit创建本地分支

例如: 当前分支的某个 commit id = 12345678 ,我们可以基于这个 id 创建本地分支

以上就是关于gitlab-CI中使用tag作为版本号硬编译进程序中全部的内容,包括:gitlab-CI中使用tag作为版本号硬编译进程序中、怎么查看git仓库当前的分支、最后一次commitId、tag等、git获取历史版本的几种方式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9724237.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存