最近开始研究项目开源的事情了,在此记录下我在开源时的一些流程,当作一个记录和参考,
开源我大概是做了以下几个准备工作,
本地开源的项目准备,
1 测试本地代码。
自己本地完成项目代码后,完整测试了下项目整个流程,确保没有太大的bug和问题。
关于要开源什么项目,我觉得都可以,开源没有什么限制,很自由,只有是自己感兴趣的,都可以尝试的开源,
2 准备依赖。
我准备了台新电脑,将代码迁移过去删除了依赖,然后试着重新安装依赖,配置环境,
在过程中碰到的一些坑,也都记录下来,可以作为安装依赖的步骤,写在readme文档里,给别人参考。
当然,实际环境的不同,我碰到的坑可能别人碰不到,别人也可能会遇到新的坑。所以为了方便,
我把完整的依赖打成了压缩包,上传了网盘里,网盘地址也写在了readme里。测试了下,可以依赖直接使用,
新环境也没有问题。准备依赖环境本就是方便别人启动项目,依赖本身并不重要,最好怎么简单怎么来,
后续准备研究下把项目打成docker镜像试试。
需要开源的网站,
开源的网站,我现在主要就是两个网站,一个是github,一个是码云,这两个网站基本是够了,
懒点的,其实选一个网站也是可以的。选好要开源的网站后,第一步当然是要注册对应的网站账号,
然后先在对应的网站上,创建好一个空的项目,复制好空项目的地址。
开源的readme文档,
开源项目里,最重要的大概就是这个项目的readme文档了,它是别人了解你项目的第一途径,
所以一般来说readme文档都尽可能写的详细。我把readme文档分了几个部分。
1、项目简单粗略的介绍,告诉别人这是一个什么项目。
2、依赖的安装方式,说明项目的安装方式。
3、启动项目的简单步骤。
4、项目的机构目录,介绍项目下,每个目录的作用,方便大家观看理解你的代码。
5、项目的技术架构。像我现在开源的rpa项目,之前设计的就是html+Electron+Nodejs的架构,现在扩展了python的部分,后续准备使用vue再升级一次。
6、项目运行后的截图,给大家展示下,自己的项目大概是个什么东西。
7、最后便是项目后续自己的一些升级改造计划了,开展一下未来,
实际开源中,用到的一些git代码和流程,
准备工作完成后,接下来就可以开始正式的开源流程了,
1、我本地的目录有点乱,所以干脆新建了一个空的目录,作为以后开源单独的目录。
2、在新目录中,执行cmd打开命令窗口,输入git init进行初始化,
3、复制开源网站上自己创建的空的项目的地址,就是clone路径,
4、在cmd命令窗口中输入,git remote add github + 复制的路径,因为我是同时开源两个网站,所以实际是远程了两个git环境,而本地实际是使用同一套代码的,所以这里git remote add gitee + 路径,是执行了两次,远程库的别名不一样,用于区分,
5、将本地的代码移动到自己新创建的空目录中,
6、使用git add . (有个点),提交新文件(new)和被修改(modified)文件,
7、使用git commit -m ‘新添加的文件内容描述’ ,将本地暂存的修改提交到版本库,并添加此次提交的记录描述,
8、使用git push gitee master ,将本地仓库推送到远程仓库
我们这里实际是配置了两个远程库的,所以还需要再操作一次,
git pull github master
git push github master (这里在实际push中给了个报错提示,没事它管不住我们,直接强制推送,git push github master -f
到此,本地代码已实际开源到开源网站上了,可以在网站上欣赏下自己的项目了,
后面的话,还有一些提交代码,创建分支,合并分支的简单步骤,
本地修改完代码后,需要提交代码,
1、git add . (有个点)
2、git commit -m “此次提交代码修改的功能描述,”
3、git push gitee master
4、git push github master(有时需要再输入下github上自己的账号和密码,)
创建新的分支
1、git checkout -b dev
2、git push github dev
3、git push gitee dev
合并分支并推送到远程库中,
1、git checkout master
2、git merge dev
3、git push gitee master
4、git push github master
在最后在补充一个比较重要的东西,
开源项目记得选自己想买的开源协议license,像我的项目是走的Apache Licence 2.0,后面看大家自己的要求来选择需要的开源协议,
另外附下我开源的地址,欢迎大家来看,
是基于html+Electron+Nodejs+python开发的rpa,自动化流程机器人,
https://gitee.com/rpaii/II-RPA
https://github.com/rpaii-com/II-RPA