如何在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

Windows本地化部署Dify完整指南

本文详细介绍了在Windows系统上本地化部署Dify的完整步骤,涵盖了Docker Desktop的安装与配置、Dify源代码的获取、环境变量的设置、服务的启动与管理、以及常见问题的解决方案。文章首先指导用户如何下载和安装Docker Desktop,并配置WSL 2功能。接着,详细说明了如何获取Dify源代码,并通过Docker Compose启动服务。文章还提供了高级配置指南,包括如何配置大语言模型和更新Dify版本。最后,针对Docker镜像拉取失败等常见问题,提供了详细的诊断和解决方案。通过本文,

jacky_zhuyuanlu的博客 1万+

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

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

王炳明 1667

ArcGIS基于DEM提取微流域单元(附练习数据下载)

流域作为一个相对独立的地理单元,与行政区的划分有着本质上的区别。流域的划分更注重自然因素,流域作为一个综合的自然整体,在其内部形成了一个天然的物质与能量流动的场所,并通过水流的作用,与周围的区域进行物质和能量的交换。流域的精确划分作为一个研究的基础工作,那么接下来给大家说一下利用DEM提取小流域的案例教程——以贵州省遵义市正安县为例。 1 数据获取 地理空间数据云(http://www.gscloud.cn/),数据分辨率为30m。也可直接点击这篇直接下载→全国30m90mDEM下载。 若想要获得更高精度.

qq_43173805的博客 4835

Redis中什么是Big Key(大key)问题?如何解决Big Key问题?

通俗易懂的讲,Big Key就是某个key对应的value很大,占用的redis空间很大,本质上是大value问题。key往往是程序可以自行设置的,value往往不受程序控制,因此可能导致value很大。redis中这些Big Key对应的value值很大,在序列化/反序列化过程中花费的时间很大,因此当我们操作Big Key时,通常比较耗时,这就可能导致redis发生阻塞,从而降低redis性能。用几个实际的例子对大Key的特征进行描述:● 一个String类型的Key,它的值为5MB(数据过大); ● 一

weixiaohuai的博客 3万+

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

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

zjj2006的专栏 464

SAP FICO 资产会计AA后台配置 (上)

输入折旧表“CZ11”如有外币计价的资产,则需指定外币计价的资产折旧范围,以及规则。因为在设置资产类型时,需指定一个对应的 资产编号范围、资产账户确定类型(便于分配自动会计科目)、屏幕格式规则(便于设置资产字段必填与否)。因为在设置资产类型时,需指定一个对应的 资产编号范围、资产账户确定类型(便于分配自动会计科目)、屏幕格式规则(便于设置资产字段必填与否)。新增资产类型:Z101 固定资产-房屋及建筑物新增资产类型:Z301 固定资产-房屋及建筑物。

ghgxm520的博客 1762

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

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

fion45的专栏 1741

CANape a2l文件的编辑教程

编辑a2l文件

wsq119的博客 1万+

FP16、BF16、INT8、INT4精度模型加载所需显存以及硬件适配的分析

本文主要介绍了FP16、INT8、INT4精度模型加载占用显存大小的分析,希望对学习大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 模型加载显存占用大小 3. 不同精度是否与硬件适配

herosunly的博客 23万+

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

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

爱下去更难! 771

1. BES2700ZP概述

恒玄BES2700采用RTX5操作系统,配合mindmics算法或者自研算法。

雪飞_海 4470

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

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

weixin_39590453的博客 821

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

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

yorcentroll的博客 2273

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

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

咸鱼老罗的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

完整指南:如何轻松在 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、付费专栏及课程。

余额充值