当前位置: 首页 > Linux

如何将自己写的代码发布到Github上供他人使用

时间:2023-04-06 18:24:40 Linux

在日常开发中,我们会用到别人写的第三方库,所以我们也可以把自己写的代码发布到github上,供别人使用。首先,我们需要创建一个个人仓库,命名为goutil,并使用public(私有仓库别人是看不到的哦!)然后clone到本地gitclonehttps://github.com/startdusk/goutil.git这里我们使用gomod管理go代码依赖,进入goutil目录,执行gomodinitgithub.com/startdusk/goutil#使用github.com上的路径作为包名新建一个文件夹hash,这次我们写一个常用md5加密函数:goutil/hash/md5.gopackagehashimport("crypto/md5""encoding/hex""errors""fmt""io""os")//获取文件md5funcFileMd5(filenamestring)(string,error){file,err:=os.Open(filename)iferr!=nil{return"",errors.New(fmt.Sprintf("md5.gohash.FileMd5os打开错误%v",err))}h:=md5.New()_,err=io.Copy(h,file)iferr!=nil{return"",errors.New(fmt.Sprintf("md5.gohash.FileMd5io复制error%v",err))}returnhex.EncodeToString(h.Sum(nil)),nil}//获取字符串md5funcStringMd5(sstring)string{md5:=md5.New()md5.Write([]byte(s))returnhex.EncodeToString(md5.Sum(nil))}下面是测试代码:goutil/hash/md5_test.gopackagehashimport"testing"funcTestMd5(t*testing.T){constexpectFileMd5="7861252f1d3f3bc4e377782deb212dca"actualFileMd5,err:=FileMd5("./md5.go")iferr!=nil{panic(err)}ifexpectFileMd5!=actualFileMd5{t.Errorf("expectfilemd5is%s;buthad%s\n",expectFileMd5,actualFileMd5)}conststr="whydidyoulikegolang"constexpectStringMd5="09a6f16fc1e802003b4c0c11b69761d2"actualStringMd5:=StringMd5(str)ifexpectStringMd5!=actualStringMd5{t.Errorf("expectstringmd5valueis%s;buthad%s\n",MunectStringMdmark5,bcactual}(*testing.B){fori:=0;i