如何在Github上发布自己写的代码给别人使用

github 代码发布到 npm 此外,你还可以在GitHub目录下创建一个自动提交和更改npm版本的脚本,以便简化发布过程。然后,在执行发布之前,运行该脚本即可自动提交代码并更改npm版本。4. 验证发布是否成功。 阅读详情

在日常开发,我们都会用到别人写的第三方库,那么我们也可以把自己写的代码发布到github给别人使用

首先要新建一个人仓库,命名叫goutil,使用public(私有仓库不能被别人见到哦!)
publish.png

然后clone到本地

git clone https://github.com/startdusk/goutil.git

这里我们使用go mod管理go代码依赖,进入到goutil目录下,执行

go mod init github.com/startdusk/goutil   # 使用和github.com上的路径做包名

新建文件夹hash,这次我们写个常见的md5加密函数:goutil/hash/md5.go

package hash
​
import (
    "crypto/md5"
	"encoding/hex"
	"errors"
	"fmt"
	"io"
	"os"
)
​
// get file md5
func FileMd5(filename string) (string, error) {
    file, err := os.Open(filename)
    if err != nil {
    return "", errors.New(
        fmt.Sprintf("md5.go hash.FileMd5 os open error %v", err))
    }
    h := md5.New()
    _, err = io.Copy(h, file)
    if err != nil {
        return "", errors.New(fmt.Sprintf("md5.go hash.FileMd5 io copy error %v", err))
    }
​
    return hex.EncodeToString(h.Sum(nil)), nil
}
​
// get string md5
func StringMd5(s string) string {
    md5 := md5.New()
    md5.Write([]byte(s))
    return hex.EncodeToString(md5.Sum(nil))
}

下面是测试代码:goutil/hash/md5_test.go

package hash
​
import "testing"
​
func TestMd5(t *testing.T) {
    const expectFileMd5 = "7861252f1d3f3bc4e377782deb212dca"
    actualFileMd5, err := FileMd5("./md5.go")
    if err != nil {
        panic(err)
    }
​
    if expectFileMd5 != actualFileMd5 {
        t.Errorf("expect file md5 is %s; but had %s\n", expectFileMd5, actualFileMd5)
    }
​
    const str = "why did you like golang"
    const expectStringMd5 = "09a6f16fc1e802003b4c0c11b69761d2"
    actualStringMd5 := StringMd5(str)
    if expectStringMd5 != actualStringMd5 {
        t.Errorf("expect string md5 value is %s; but had %s\n", expectStringMd5, actualStringMd5)
    }
}
​
func BenchmarkMd5(b *testing.B) {
    for i := 0; i < b.N; i++ {
        _, err := FileMd5("./md5.go")
        if err != nil {
            panic(err)
        }
    }
​
    const str = "why did you like golang"
    for i := 0; i < b.N; i++ {
        _ = StringMd5(str)
    }
}

上面的测试代码中的hash是预先计算好的(linux环境下,windows也有类似的命令行工具)

md5sum ./md5.go

filehash.png

echo -n "why did you like golang" | md5sum

stringmd5.png

然后测试,通过就可以上传代码到远程仓库

runtest.png

接下来就是git的一些常规操作:

git add .
git commit -m "Add a md5 functions"
git push

如果需要过滤掉一些不想上传的文件,在.gitignore上添加

pass.png

待上传成功后,我们需要发布下代码,进入到git仓库goutil,点击release发布

release.png
创建一个新的release,版本号默认为v0.0.0的格式,所以第一次发布我们写v0.1.0,然后添加一些说明
release2.png

发布成功后,我们可以来试试自己写的代码能否被使用:

go get github.com/startdusk/goutil

download.png

GitHub Actions - 使用 tag 作为发布的版本号 使用 GitHub Action 发布版本时, 获取触发的 tag 作为发布的版本号. 方式一 通过 step 获取 tag, 在需要使用的地方使用 steps.get_version.outputs.VERSION, 其中 get_version 是 step 的 id. name: Release on: push: tags: - 'v*' jobs: release: name: Release runs-on: ubuntu-latest st 阅读详情

相关推荐

github上如何发布自己的maven库?

开发过程中经常在maven仓库中使用别人造好的轮子,有没有想过自己也造一个,造福他人也免去自己频繁拷贝库的烦琐,本文主要讲解如何过程github发布自己的maven库。 流程分析 本文主要讲解以下几个步骤 在github上建立自己的代码仓 工程中配置库打包插件 maven平台请求发布库 使用自己发布的依赖库 建立代码仓 建立自己的github账号,并创建自己的工程,这个环节,我想大部分人朋友都已了解,如何有不清楚的可以查阅 创建github工程引导 值得注意的是,仓库名会在发布maven库时对应ar.

茶不思基 953

使用GitHub分享项目

Microsoft Edge是一款现代化的浏览器,它拥有众多功能和强大的性能,为用户带来更加流畅的浏览体验。Edge最近推出了分屏功能,支持一个窗口同时显示两个选项卡,这可以大大提高生产力和多任务处理能力。欢迎大家使用分屏及其他新功能后分享自己的使用心得与建议。

星晨六慕的博客 3137

生物信息学实战:如何用STRING数据库和R语言搞定蛋白互作网络分析(附完整代码)

本文提供了一份完整的生物信息学实战指南,详细介绍了如何利用STRING数据库和R语言进行蛋白互作网络分析。从差异表达基因列表出发,涵盖数据准备、数据库连接、网络构建到高级可视化与模块识别的全流程,并附有可复现的完整R代码,帮助研究人员深入解析转录组数据背后的蛋白互作关系。

milk5的博客 948

21. Go 语言中如何开源自己写的包给别人用?

Hi,大家好,我是明哥。 在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注一下,一起学习,一起成长。 我的在线博客:http://golang.iswbm.com 我的 Github:github.com/iswbm/GolangCodingTime 通常之前的学习,我们知道了在 Go 的项目中,可以 import 一个托管在远程仓库的

王炳明 1667

软件测试--用例篇(测试用例的好处、测试用例的七种设计方法、测试用例的粒度、测试用例的评价)

作为软件测试工程师,最主要的工作就是:编写测试用例,那么为什么要编写测试用例?它有什么好处?如何编写测试用例?测试用例写简单好还是复杂好?如何评价测试用例的质量? 天呐撸!能说不会吗?! 作为倾向软件测试工程师的老铁们,还是一起来学习吧! 一、编写测试用例的好处 测试用例是测试者的依据 测试用例使得工作可重复,是自动化测试的基础 补充:自动化测试的前提条件是:功能比较稳定,页面...

cherrydreamsover的博客 3734

FPGA高速接口Aurora8B/10B协议实战:从IP核配置到数据流优化

本文详细介绍了FPGA高速接口Aurora8B/10B协议的实战应用,从IP核配置到数据流优化的全流程。通过Aurora8B/10B协议,开发者可以在FPGA间实现高效的数据传输,适用于高速接口设计。文章涵盖了协议基础、IP核配置、AXI4-Stream接口实战技巧以及性能优化策略,帮助读者快速掌握这一关键技术。

weixin_29280657的博客 269

go语言学习(三):源码文件

go语言的源码文件包括命令源码文件、库源码文件和测试源码文件。 命令源码文件是程序执行的入口,属于main包,包含无参数无返回结果的main函数,同java类似,同一个包下面不建议存放多个main函数。命令源码文件编译或安装后生成可执行文件,存在当前执行命令的目录下。 库源码文件用于存放供其他代码使用的程序实体,构建时进行检查和验证,生成临时文件,安装时生成归档文...

zjj2006的专栏 464

sap资产post记录查询时候 报错 如图

SAP资产过账查询报错AA653解决方案摘要 错误原因:系统无法计算会计年度期间的最后一天,导致资产折旧/过账失败。常见原因包括:1)未创建2025年期间版本;2)期间日期映射不完整;3)依赖日历但未生成2025年日历。 解决方法: 通过OB37维护2025年12/13个完整期间 补充缺失期间或修正结束日期 使用SCAL生成2025年工厂日历 验证步骤: 检查T009R表2025年记录完整性 测试AFAB折旧运行 重新查询资产过账 提示:建议财务团队统一维护跨年度期间数据,并在测试系统验证变更。

金牌架构师 835

在GitHub上分享和展示你的代码

先下载git preview 上传分享代码 1.在GitHub上建立项目 登录GitHub后,你可以在右边靠中那里找到一个按钮“New Repository”,点击过后,填入项目名称、说明和网址过后就可以创建了,然后会出现一个提示页面,记下类似git@github.com:XXX/XXX.git的地址,这个就是你这个项目的地址了。 2.配置Git以及上传代码 安装Gi

fion45的专栏 1741

华为OD机试真题 新系统 2026-05-13 Python&JS语言 实现【查找能被整除的最大整数】

给定一个字符串和一个正整数,字符串由大小写字母和数字组成,要求从字符串中找出最大且能被给定正整数整除的数。

MISAYAONE的博客 226

华为OD机试 - 最快到达医院的方法(Python/JS/C/C++ 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 2170

上传个人的代码或者项目到GitHub(1)

Github上分享自己的代码或者项目,为了分享自己的成果,帮助更多的人或者由于工作和论文投稿需要。我是因为论文投稿需要才去了解这个过程的。以为很简单的,但实则一点也不简单。下面我将自己的经验分享出来。

爱下去更难! 771

医疗工具识别(手术器械计数):基于YOLOv8的智能手术器械管理系统

YOLOv8是Ultralytics公司于2023年推出的最新一代目标检测算法,相比前代YOLOv5,在精度和速度上都有显著提升。Anchor-free检测:不再使用预定义的anchor boxes,简化了检测流程更高效的骨干网络:采用CSPDarknet53作为特征提取网络多尺度特征融合:通过PANet结构实现更好的小目标检测损失函数优化:使用CIoU损失提高边界框回归精度YOLOv8提供了多种规模的模型(n/s/m/l/x),可根据实际需求在精度和速度之间进行权衡。

YOLO 480

python写的代码怎么发给别人_如何在Github上发布自己写的代码给别人使用

在日常开发,我们都会用到别人写的第三方库,那么我们也可以把自己写的代码发布到github给别人使用首先要新建一个人仓库,命名叫goutil,使用public(私有仓库不能被别人见到哦!)然后clone到本地git clone https://github.com/startdusk/goutil.git这里我们使用go mod管理go代码依赖,进入到goutil目录下,执行go mod init ...

weixin_39590453的博客 821

Allegro如何用自带的功能将线段变成铜皮操作指导

在做PCB设计的时候,有时根据设计需要将线段变成铜皮,可以借助辅助工具来实现这一操作,但是Allegro自身也自带这个功能,如下图。勾选Delete original objects。如何用自带的功能将线段变成铜皮操作指导。勾选Convert to shape,需要把这段走线变成铜皮。

weixin_54787054的博客 2946

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

如何将自己写的代码同步到github并发布到npm

1. 很明显,先注册NPM和github账号 过程省略,进入各自的官网,创建账号 2. 写代码 默认你已经安装了node环境,node环境也包括了npm环境 新建工程文件夹,然后执行下面的命令,初始化一个package.json文件 npm init -y { "name": "a-string-is-null-empty-undefined", "version":...

yorcentroll的博客 2273

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

AI 写代码来了 - github 的 AI 写代码插件 copilot 发布

以前老在调侃 AI 自动写代码,没想到这么快就成现实。这几天 github 出了 AI 写代码插件,支持 vscode 编辑器,js,py,go 等语言,看了介绍,感觉可以满足生产使用,能节省很多工作量。不过还没有开放使用,需要提交审核。 github-copilot AI 代码编辑器可以跟据方法名自动生成对应代码,节省代码编写时间;对于使用新语言,新框架的码农也有很大帮助,不用再去谷歌写法;还能自动写测试。 审核通过后,一定要试用下。 https://copilot.github.com/,官网预览介绍:

咸鱼老罗的博客 1万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

完整指南:如何轻松在 GitHub 上使用 GitHub Pages 发布 Helm Chart

本文涵盖了关于在 GitHub 上编写、发布和测试 Helm Chart 的所有必要知识。从创建 Chart 和设置 GitHub Pages 到自动化发布和验证部署,本指南为您提供全面指导。在这篇简短的文章中,我将向您展示如何使用 GitHub Pages 轻松将本地编写的 Helm Chart 发布到 GitHub 上。我们将涵盖以下步骤:创建 Helm Chart创建自动发布使用 GitHub 工作流在推送时生成 Helm 文档在推送后自动在 Kind 集群上测试 Helm Chart。

qq_37844084的博客 2432

动嘴就能写代码,GitHub 将 ChatGPT 引入 IDE,重磅发布 Copilot X!

作者 | 屠敏出品 | 优快云(ID:优快云news)从以前拖拽控件实现低代码开发,到用自然语言也能自动生成代码,AI 工具势要颠覆程序员疯狂敲键盘的日常,微软也终要将 OpenAI 最前沿的技术贯穿到自家业务线的方方面面。继微软用 GPT-4 升级 Bing 搜索引擎、Edge 浏览器、Office 全家桶之后,就在昨夜,其旗下代码托管平台 GitHub 再次发布重磅“炸弹”:推出Copi...

优快云资讯 1万+

手把手地教你如何在GitHub上面发布自己写的代码

1.首先注册一个GitHub的账号,注册地址为https://github.com/join,注册过程很简单,只要按照网站要求的填就可以了。 2.点击主界面那里的+号,然后选择new repository 3.简单配置一下 4.接下来会弹出来一个网址,一会儿在本地上传代码的时候会用到 5.安装Git。我们这里上传代码选择的是使用Git上传,先下载Githttps://git...

u014723479的博客 9593

BepInEx插件发布自动化:使用GitHub Releases

插件开发者在手动发布BepInEx插件时面临版本管理混乱、打包流程繁琐、发布效率低下等问题。本文提供一套完整的GitHub Releases自动化方案,通过标准化工作流实现从代码提交到用户下载的全流程自动化,将发布耗时从小时级压缩至分钟级。 读完本文你将获得: - 符合BepInEx规范的语义化版本管理策略 - 自动化构建、测试、打包的GitHub Actions工作流配置 - 多平台插件包的自...

gitblog_00659的博客 1153

Github action 的开发到发布

Github action 这东西是好东西, 但我看了一下, 很多朋友都是停留在用的阶段, 其实偶尔也要换换口味, 自己开发一个 action, 而不是仅仅是用 简介 github actions 是 github 推出的一个工作流的工具, 目的是为了帮助我们在某些情况下主动触发仓库的动作, 从而完成 单元测试/CI/CD, 甚至包括 release,发布包管理工具等等 官方关于 actions 有关的一些仓库都在这里: https://github.com/actions , 文档在这里 github 的

SimpleCoder's Blog 2296

使用GitHub Actions跨仓库发布Packages

准备两个仓库,A仓库用作管理源代码的提交信息,B仓库用来管理构建后的目标代码的版本。向A仓库提交更改后借助GitHub Actions自动触发构建过程,并自动将构建好的代码提交到B仓库。向B仓库提交更改后同样依靠GitHub Actions的能力自动发布一个GitHub Package。在这其中借助于GitHub社区丰富的Actions插件,实现诸如跨仓库部署、更新Package版本号。 使用到四个现成的Github Actions: 0、检出仓库:actions/checkout 1、设置Node.js

u010089686的博客 2342

GitHub发布神器:5分钟掌握github-release命令行工具

还在为GitHub发布流程繁琐而烦恼吗?想要快速创建版本、上传文件却不想写复杂的API调用?github-release命令行工具正是你需要的解决方案!这款高效的Go语言工具让GitHub发布变得像喝水一样简单,无论是新手开发者还是经验丰富的团队,都能在几分钟内完成完整的发布流程。 ## 为什么选择github-release? 想象一下这样的场景:你的开源项目终于完成了新版本开发,需要发布到

gitblog_01058的博客 1183

[Github] Github 如何发布(release)

comments] 是你给这个标签的备注,可以随便写,为了以后方便看,你可以写成日期或者版本号的形式。温馨提示:如果在这四步的操作中有报错,可以尝试重新克隆远程仓库到本地!其中 [tag-name] 是你的标签名字,最好和我们刚才创建的分支名字一致!将你的项目打包放上去,可以从文件夹中直接拖拽上去,也可以点击后选择。填写你的发布介绍,就是你发布的内容有什么功能等等.....,其中可以包含你的项目的特定版本、变更日志和其他相关信息。现在我们就可以愉快的执行我们发布的操作了~ 👇👇👇。

m0_74819547的博客 2万+
上一篇: Golang内置函数之copy用法及用例
下一篇: 快速搭建 TypeScript 开发环境
HTK217
博客等级 码龄9年 0粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值