隐藏文件夹 .github , 里面放两个文件:
ISSUE_TEMPLATE.md
PULL_REQUEST_TEMPLATE.md
仓库有两个基础分支:
dev(默认分支)
master(用于发布)
通过pull request来合并新的代码:
协作者的代码通过pr合并到dev
dev通过pr合并到master
注意点:
merge 到 dev,使用squash merge
merge 到 master,使用普通的merge
永远不向master直接commit代码
只有一个长期分支 master ,而且 master 分支上的代码,永远是可发布状态,
to do
github自带的,貌似比Travis CI好用
ctest 怎么写
Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 Github 上面的项目,只要有新的代码,就会自动抓取。然后,提供一个运行环境,执行测试,完成构建,还能部署到服务器。
持续集成的好处在于,每次代码的小幅变更,就能看到运行结果,从而不断累积小的变更,而不是在开发周期结束时,一下子合并一大块代码。
使用准备
.travis.yml
运行流程
可选部分
1 | before_install:install 阶段之前执行 |
运行状态
1 | passed:运行成功,所有步骤的退出码都是0 |
可选加密环境变量
Angular规范
1 | <type>(<scope>): <subject> |
name | description | 实例 |
---|---|---|
feat: | 新功能(feature)。 | 打印函数 feat: Add print function for enhanced runtime information |
fix/to: | 修复bug,可以是QA发现的BUG,也可以是研发自己发现的BUG。 | |
fix: | 产生diff并自动修复此问题。适合于一次提交直接修复问题 | |
to: | 只产生diff不自动修复此问题。适合于多次提交。最终修复问题提交时使用fix | |
docs: | 文档(documentation)。 | |
style: | 格式(不影响代码运行的变动)。 | |
refactor: | 重构(即不是新增功能,也不是修改bug的代码变动)。 | |
perf: | 优化相关,比如提升性能、体验。 | |
test: | 增加测试。 | |
chore: | 构建过程或辅助工具的变动。 | |
revert: | 回滚到上一个版本。 | |
merge: | 代码合并。 | |
sync: | 同步主线或分支的Bug。 |
格式为:
1 | <type>(<scope>): <subject> |
revert:
, followed by the header of the reverted commit. In the body it should say: This reverts commit <hash>.
, where the hash is the SHA of the commit being reverted.*
.
结尾BREAKING CHANGE:
with a space or two newlines. The rest of the commit message is then used for this.插件 vscode插件git-commit-plugin
命令行 husky + commitlint
Standard Version
1 | npm cache clean --force #npm指令清除npm缓存 |
1 | "scripts": { |
CHANGELOG.md 记录内容的配置
1 | { |
使用Standard Version
1 | // 初次发布版本 |
Commitizen for contributors
Visual Studio Code Commitizen Support
vscode的插件
conventional-changelog/commitlint
阻止不规范的提交
github-release-notes,以下简称 gren ,是用来一键向 github 发布 release notes 的工具。
https://zhuanlan.zhihu.com/p/99499246
https://blog.csdn.net/weixin_39586683/article/details/110643111
版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
主版本号:当你做了不兼容的 API 修改,
次版本号:当你做了向下兼容的功能性新增,
修订号:当你做了向下兼容的问题修正。
先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
写个github模板
set(Boost_USE_STATIC_LIBS ON)
set(Boost_DEBUG ON)
Boost_INCLUDE_DIR: 含有boost头文件的目录
Boost_LIBRARYDIR: 偏好的含有boost库的库目录
https://stackoverflow.com/questions/3897839/how-to-link-c-program-with-boost-using-cmake
http://c.biancheng.net/view/7772.html cache?
cmake boost install path
https://cloud.tencent.com/developer/ask/107360
设置boost-root 查看安装位置
Travis-CI 依赖软件包每次都要重新安装吗
https://stackoverflow.com/questions/57982945/how-to-apt-get-install-in-a-github-actions-workflow
Actions may have no Boost, where
Ctest add build/bin to test
Ctest https://www.cnblogs.com/hustcpp/p/12922998.html
暂无
还是ipcc的github组织的太烂了,需要学习一下
https://zhuanlan.zhihu.com/p/67620599
http://www.ruanyifeng.com/blog/2017/12/travis_ci_tutorial.html
public/*.html
根据公开的仓库,hugo的html文件会产生在gh-pages
分支下
1 | name: build |
接收端转发到内网的机器上(通过修改vim /etc/nginx/sites-enabled/default
)
1 | server{ |
记得reload systemctl reload nginx
Nginx中location的作用是根据Url来决定怎么处理用户请求(转发请求给其他服务器处理或者查找本地文件进行处理)。location支持正则表达式,配置十分灵活。我们可以在一个虚拟主机(nginx中的一个server节点)下配置多个location以满足如动静分离,防盗链等需求。
在snode5上nginx也需要转发
1 | location /_webhook/ { |
暂无
暂无
1 | mkdir git-lfs | cd git-lfs |
1 | git lfs install |
工作区修改了文件(add之前),但是发现文件是你不想修改的,或者修改错误的,执行git checkout - 文件名,在工作区把文件恢复到修改之前的状态;
工作区修改了文件,并且已经添加到缓存区(add之后,承之前),执行git reset HEAD文件名(HEAD表示最新的版本),此操作是把缓存区修改的内容返回到工作区,如果此时你还是不想修改此文件的话,就再次执行第一步操作,就可以恢复到文件修改前的状态;
已经把文件提交给了分支(commit之后,推之前),执行git reset - hard HEAD ^(HEAD ^表示上一个版本),或者先用git log查看已经提交的版本号,执行git reset - -hard版本号的ID,就可以恢复到之前的版本,此时工作区和缓存区也是干净的;
推的时候忽略文件的操作:(忽略大文件操作.gitignore不好使的时候),在commit提交之后push推之前,输入命令:
1 | git filter-branch --force --index-filter "git rm --cached --ignore-unmatch 有关文件" --prune-empty --tag-name-filter cat -- --all # 如果git提示包含未提交的更改,需要再提交一下 |
暂无
很搞笑的是node5的IPCC/SLIC我就是弄不好,明明是按照步骤来的。
大于100MB的文件上传不了github
无