• git 标签相关命令


    要在本地仓库中添加标签,你可以使用以下命令:

    git tag 

    这将在当前所处的提交上创建一个轻量级标签(lightweight tag)。如果你想要创建一个带有附注信息的标签,可以使用 -a 选项:

    git tag -a  -m "tag message"

    在这个命令中,-a 表示创建一个带附注的标签,-m 用来指定标签的消息内容。

    如果要将标签推送到远程仓库(例如 GitHub 或 GitLab),需使用 git push 命令,并指定 --tags 选项来推送所有标签:

    git push origin --tags

    这样就可以将本地仓库中的标签推送到远程仓库中,从而与其他开发人员共享这些标签信息。

    删除标签 例如删除 1.0.15标签

    git tag -d 1.0.15

    将上面删除操作推到远端

    git push origin :refs/tags/1.0.15

    撤回某个已经 push过的合并操作,只需两步

    1. git reset --hard <合并前的提交哈希值>
    2. git push origin <你的分支名> --force-with-lease

    如果是npm包项目,且有gitlab CICD持续集成的还可以结合 .gitlab-ci.yml 做一些自动化发版,

    例如

    1. before_script:
    2. - echo -e "registry=https://registry.example.com/" >> .npmrc
    3. sdk-build:
    4. stage: build
    5. only:
    6. - tags
    7. script:
    8. - node ./changeVersion.js
    9. - echo -e "\n//registry.example.com/:_authToken=$NPM_ACCESS_TOKEN" >> .npmrc
    10. - npm publish

    这一段表示添加  .npmrc文件,内容为 registry=https://registry.example.com/

    CICD监听到tags变化时,执行changeVersion.js 修改package.json中的版本version,

    然后 npm publish进行发版。(注意上文NPM_ACCESS_TOKEN为gitlab中定义变量)

    私有npm服务上面最后一步publish后面最好加源

     - npm publish --registry=https://registry.example.com/

    changeVersion.js内容如下

    1. const fs = require('fs');
    2. // 读取 package.json 文件
    3. fs.readFile('package.json', 'utf8', (err, data) => {
    4. if (err) {
    5. throw err;
    6. }
    7. // 解析 package.json 内容
    8. const packageJson = JSON.parse(data);
    9. // 将 CI_COMMIT_TAG 赋值给 version 字段
    10. packageJson.version = process.env.CI_COMMIT_TAG;
    11. // 将修改后的内容写回 package.json 文件
    12. fs.writeFile('package.json', JSON.stringify(packageJson, null, 2), 'utf8', (err) => {
    13. if (err) {
    14. throw err;
    15. }
    16. console.log('package.json 文件中的 version 已更新为 ' + process.env.CI_COMMIT_TAG);
    17. });
    18. });

    这样即可实现tag标签变化后,自动发版,版本号=tag

  • 相关阅读:
    如何在小程序首页设置标题栏文字
    37.图练习(王道第6章综合练习)
    【C++笔记】第二十六篇 常用算法
    Matlab|10节点潮流计算程序(通用性强)
    深入理解Spring事件机制(一):广播器与监听器的初始化
    Java数据结构与算法:最短路径与Dijstra算法实现
    汽车信息查询易语言代码
    SpringBoot整合阿里云短信服务
    Tomcat 学习笔记
    iOS AppStore上架流程图文详解
  • 原文地址:https://blog.csdn.net/a314753967/article/details/134281738