当前位置: 首页 > news >正文

github私有仓库开发,公开仓库发布版本

文章目录

  • github私有仓库开发,公开仓库发布版本
    • 需求背景
    • 实现思路
    • GitHub Releases
    • 具体步骤
    • 广告

github私有仓库开发,公开仓库发布版本

需求背景

github私有仓库开发,公开仓库发布版本,既可以保护源代码,又可以发布版本给用户使用。许多知名软件项目都采用了这样的开发模式。

实现思路

总体思路是开发和发布分离。

GitHub Releases

官方文档: https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases
中文:https://docs.github.com/zh/repositories/releasing-projects-on-github/about-releases

GitHub 中有一个 Releases 的概念,其实与 tag 差不多,简单理解就是在打一个 tag 的基础之上,用 releases 来进行管理。

GitHub 的 releases 是 2013 年发布的新功用,旨在帮忙软件开发者分发新版别给用户。

如果开发者需要发布软件或者应用程序,可以使用GitHub Releases来实现。GitHub Releases是GitHub提供的一项功能,可以将代码打包成软件包,并发布到GitHub上。开发者可以在GitHub上创建一个新的Release,并上传软件包到Release中。GitHub会自动将软件包标记为发布状态,并提供下载链接。

在这里插入图片描述您可以创建包装软件的版本,以及发行说明和二进制文件的链接,供其他人使用。

发行版基于用于标记存储库历史记录中的特定点的 git tags。

点击 Create a new release (制定一个新的release)在这里插入图片描述

  • 为你的release输入一个版本名称,版本是基于 git tags 。
  • 上传你的二进制文件。

具体步骤

  1. 创建两个仓库:一个私有仓库(比如myapp-dev),一个公开仓库(myapp-release)
  2. 开发时全部在私有仓库myapp-dev上进行,包括新功能开发、bug修复等。
  3. 开发完成后,在私有仓库上打标签发布版本:
git tag -a v0.0.1 -m "release version"
  1. 只把标签和对应的提交对象推送到公开仓库myapp-release:
git push origin v0.0.1

在公开仓库页面中,点击“Releases”选项卡,然后点击“Create a new release”按钮。
选择你刚创建tag,标题、描述等信息,并上传需要发布的文件。

  1. 在公开仓库myapp-release只会看到发布的标签,不包含代码历史记录。
  2. 用户可以通过公开仓库下载您发布的版本。

广告

这里给自己项目打个广告,求star,项目地址:https://github.com/shepf/httpcat-release

🚀HttpCat 概述
HttpCat 是一个基于go实现的 HTTP 的文件传输服务,旨在提供简单、高效、稳定的文件上传和下载功能。

项目目标:一个可靠、高效、易用的HTTP文件传输瑞士军刀,它将大大提高你的文件传输控制力和体验。 无论是临时分享还是批量传输文件,HttpCat都将是你的优秀助手。

💥功能特点
简单易用
无需外部依赖,易于移植

相关文章:

  • 如何使用 Java 设计一个简单的成绩计算程序
  • 『MySQL快速上手』-⑨-复合查询
  • Android WebView专题
  • 2023年开发语言和数据库排行
  • 重复性工作自动化解决方案——影刀
  • STM32——端口复用与重映射概述与配置(HAL库)
  • STM32-HAL库09-CAN通讯(loopback模式)
  • labview实现仪器的控制visa
  • 【Java】如何将二进制转换成MultipartFile
  • Flink SQL 表值聚合函数(Table Aggregate Function)详解
  • 突然消失的桌面文件如何恢复?详细教程让你轻松解决问题!
  • 模拟法——张三的零花钱(C#)
  • 从零开始搭建React+TypeScript+webpack开发环境-基于lerna的webpack项目工程化改造
  • 立体库堆垛机控制程序手动功能实现
  • linux 下正确使用cp命令复制目录
  • [nginx文档翻译系列] 控制nginx
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • 03Go 类型总结
  • java 多线程基础, 我觉得还是有必要看看的
  • javascript 哈希表
  • session共享问题解决方案
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • Vue.js-Day01
  • WePY 在小程序性能调优上做出的探究
  • 给Prometheus造假数据的方法
  • 如何实现 font-size 的响应式
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 学习HTTP相关知识笔记
  • 一天一个设计模式之JS实现——适配器模式
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • zabbix3.2监控linux磁盘IO
  • 阿里云ACE认证之理解CDN技术
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #Linux(帮助手册)
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • $.ajax()方法详解
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (145)光线追踪距离场柔和阴影
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (8)STL算法之替换
  • (C#)一个最简单的链表类
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (分类)KNN算法- 参数调优
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (三分钟)速览传统边缘检测算子
  • (十六)一篇文章学会Java的常用API
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET CORE Aws S3 使用
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .net反编译的九款神器
  • .NET开发不可不知、不可不用的辅助类(一)
  • @Resource和@Autowired的区别