Git commit 的提交约定

2022年1月9日 没有评论

想要使用 bamboo 自动生成 changelog 文件,检索了下发现已经有现成的方式,即大家约定 git commit message 的格式。

<type>(<scope>): <subject>// 空一行<body>// 空一行<footer>

其中,Header 是必需的,body 和 footer 可以省略。任何一个部分建议长度不要太长避免自动换行。

Header 是必需的,只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)
(1)type
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动

如果type为 feat 和 fix,则该 commit 将肯定出现在 Change log 之中。其它类型(docs、chore、style、refactor、test)可以不用放。

(2)scope
scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。

(3)subject
subject是 commit 目的的简短描述,不超过50个字符。以动词开头,使用第一人称现在时,比如change,而不是changed或changes;第一个字母小写;结尾不加句号(.)

Body 部分是对本次 commit 的详细描述,可以分成多行。
Footer 部分只用于两种情况。一:不兼容变动,如果当前代码与上一个版本不兼容,则 Footer 部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法。二:关闭 Issue,如果当前 commit 针对某个issue,那么可以在 Footer 部分标记关闭这个 issue 。

来源

分类: 日常 标签:

git 仓库强制切换更新

2021年12月24日 没有评论

在本地添加了各种测试代码,或者解决冲突失败的情况下,想要完全放弃本地的任何改动(包括已经提交但未推送的变动),直接从远端获取最新的代码记录,可以采用下面的命令。

简单、暴力、好用。

git fetch –all
git reset –hard origin/master
git pull

分类: 一句话, 日常 标签:

pm2

2021年11月24日 没有评论

最近无意间发现了 PM2 这个工具,它是 node的进程管理工具,可以用来简化node应用的相关任务,例如自动重启、负载均衡等,而且使用也比较简单。

在安装了 nodejs后,只需要 npm install -g pm2 来全局安装PM2即可。

常见命令:
pm2 start PATH
pm2 status
pm2 stop APP_ID

在启动的时候,有一个 -i 参数需要提下,该参数表明启动的实例,可用于负载均衡。如果是传递 0 或者 max,则表示根据机器当前CPU核数来确定实例数目。

分类: 一句话, 日常 标签:

git 删除远程仓库的错误提交

2021年10月8日 没有评论

在使用git提交代码的时候,有时候处于某些原因,希望撤回远程仓库里的记录,例如:
– 代码错误,影响编译或者产生bug
– 测试代码错误提交
– 敏感信息提交
– 内容或者作者信息错误或者不完善

那么对应的方式可以怎么做呢?首先我们可以运行:
git reset --hard HEAD~n
这里的数字n就是你想回滚的提交数,最近的一次的提交就写1,其次就写2,以此类推。运行后,就会提示 HEAD is now at commit xxxx。

再强制推送到远端
git push --force

然后远端的内容就更新了,需要注意的是,如果在你原始的提交后,别人也提交了内容,那么在经过操作后,对方的内容也随之消失了。

分类: 一句话, 日常 标签:

表格文本

2021年9月5日 没有评论

最近要实现一段代码逻辑,里面涉及到了好几个条件。最后整理出一个表格,但是感觉应该把这个表格作为注释放到代码文件里,方便后来的维护人员。

可是找了好久都没有找到这样的工具,后来终于被我无意间给发现了,分享给大家。

https://tableconvert.com/?output=text

分类: 一句话, 日常 标签:

查看文件和文件夹被什么程序使用

2021年8月23日 没有评论

有时候经常发生要删除、移动、重命名文件夹/文件的时候,系统提示有程序正在使用,导致操作无法继续。

不妨按照下面的方式:

  1. 打开资源监视器
  2. 选择 “CPU”标签页,可以看到下面第三行“关联的句柄”,里面还有个搜索框
  3. 在搜索框里输入受影响的文件夹名称,回车等待一段时间
  4. 下面列表就会显示具体是哪个进程在占用

这个还是蛮方便的,不需要使用 Unlocker 之类的第三方程序。

分类: 一句话, 日常 标签:

Firefly安装opencv4

2021年7月1日 没有评论

在 Firefly 通过编译安装的升级 python 的时候,编译始终有些乱七八糟的错误。一气之下,就更新了固件到 Ubuntu 18.04 系统上,再编译升级报错就少了很多,一点点终于升级成功了。

可是按照网上的操作安装 opencv-python 时总是提示找不到,怀疑是这个并没有针对 ARM 的版本吧。使用 python-opencv 只有 2.7 的可以安装上。

只好通过网上的帖子,编译安装 opencv,当前最新的版本是 4.3,按照这里,还有这里。经过漫长的等待,虽然有很多警告,不过终于是安装成功了。

先下载最新的版本
wget https://github.com/opencv/opencv/archive/4.3.0.tar.gz

然后解压缩 tar zxvf opencv.4.3.0.tar.gz

进入到其目录,并创建 build 子目录
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE ..
make -j4
sudo make install

最后可以使用 import cv2 来验证

网上的帖子里说在使用 cmake 时传递的参数会导致很多错误,所以就直接使用了最少的参数。好在没有什么问题。

分类: Banana Pi, Python, 日常 标签:

Nautilus

2021年6月4日 没有评论

我自己使用的是 Ubuntu 系统,在每次安装软件时,对于系统目录下,又不能带文件夹遍历的方式覆盖,可能我没有找到方法吧,所以每次都是手动的通过命令行去完成,很是费劲。

终于让我无意间找到了一种可行的方式,就是使用系统自带的资源文件管理器 nautilus,命令行以管理员权限运行,就可以弹出用户界面了,在这个界面里去做文件夹的复制、替换都不再禁止了。

sudo nautilus

爽的一比,windows 的体验又回来了。

分类: 一句话 标签:

MinIO 分布式存储工具

2021年5月7日 没有评论

这几天在寻思怎么安全地保存文件,以前一直是放到 MongoDB 里的 GridFs ,但是看到网上有人现身说法,提示千万不要用数据库存储文件,如果文件损坏就无法挽回了。想一想还是有几分道理的,搞得我都有点不自信了。

经过一番搜索,发现了 MinIO 这么一个工具。

其实我并不在乎是否支持亚马逊的S3,也不关心是否是分布式,其服务器端够轻量,蛮不错。

从其官网下载文件后,就可以运行试一试拉。

minio.exe server c:\data

程序会输出当前的 appkey 和 secretkey,以及可访问的 url 地址。默认的账号和密码就是 minioadmin,登录进去看了看,就是和普通的网盘界面差不多。

创建了 bucket,上传文件,然后在文件夹里确认。

基本上,每创建一个 bucket ,就会在程序的根目录下创建一个同名的文件夹,里面存放上传的文件。此外,还有生成一些文件相关的元数据保存在config文件夹里。我尝试了本地直接删除文件夹,然后在网页里上传也会正确提示这个bucket 不存在了。不过 config 文件夹里还是会有一个同名文件夹不会被删除。当然啦,这样的场景,对于真实产线其实就比较少见了。

这个工具有一个比较厉害的是如果一半的硬盘坏掉了,都可以把文件恢复过来,而且是基于文件粒度的。像一些磁盘坏道修复工具,粒度都是基于分区的,速度会慢很多。听起来很有趣的样子。

分类: 日常 标签:

尝鲜 Yolo 物体识别

2021年4月17日 没有评论

Yolo 作为当下比较流行的物体检查AI模型之一,还是得到了大家的青睐,主要说来有几个因素:

1、检测的范围广。按照官方的说法是可以支持9000种常见的分类,并且Yolo v2覆盖了 coco 的数据集。
2、检测的准确率高。我拿实际照片跑了下,还是有意外的惊喜。
3、检测速度快。使用普通的 CPU就可以运行 Tiny YOLO 低配版的数据集,我的笔记本上大概会是12s左右。在 2080Ti 显卡上跑 Yolo v2或者 v3的版本速度都很快,毫秒级别的响应。

原本是想在树莓派上运行,所以尝试的是源码安装。如果缺少什么依赖库,自行安装。

git clone https://github.com/pjreddie/darknet
cd darknet
make

编译完成后,还需要去下载权重文件,这个就比较大了,我先后找过好几个不同的版本,好在都找齐了。

运行命令

./darknet detect cfg/yolo.cfg weights/yolo.weights data/dog.jpg

如果想试一试乞丐版本,就换成下面的参数:

./darknet detect cfg/tiny-yolo.cfg weights/tiny-yolo.weights data/dog.jpg

运行后,会在根目录下生产一张 predictions.jpg 结果图片,多次运行命令会覆盖掉先前的图片。

在我的 Firefly 上是可以成功编译成功的,但是加载权重文件预测时失败了,不知道是内存不够用还是什么情况,网上有很多类似的提问,浏览了好多,还有修改版的权重文件提供,反正我是没有成功,看起来想在树莓派上跑起来不太可行了。

有哪位同学可以跑通,麻烦告诉下我。

分类: AI, 日常 标签: