how-github.md

如何使用GitHub上传文件

上传文件的极简工作流程

git add . ——将所有更改过的文件添加到暂缓区

git commit -m ——将修改部分推送到本地仓库

git push—— 将本地仓库的更改推送到远程仓库(GitHub服务器)

上传文件的具体工作流程

1. 首先进入某一个特定的文件夹,如test, 然后使用git init创建git文件

2. 将文件添加到staging area,以便为下一次提交commit做准备

使用git add .推送所有的文件到本地仓库的暂缓区(staging area),或者使用git add **.cpp推送某个特定的文件到本地仓库的暂缓区(staging area)。
2

3. 输入本次的提交说明,提交更改到本地仓库

git commit -m "任意的提交信息"将提交更改到本地仓库
3

4. 关联GitHub仓库

GitHub中新建一个repository,复制仓库地址

4
5
6

在本地仓库中,使用git remote add命令将远程仓库链接到本地仓库

git remote add origin https://github.com/carrollpolo/test.git

5. 将本地仓库推送到GitHub服务器

git push将本地仓库更改推送到远程仓库

git push -u origin main

出现了下列问题,因为推送到了错误的分支(事实上,我的GitHub远程分支只有master)
7
我们可以使用git branch查看远程仓库的分支,避免推送失败

OpenPose_program

Openpose本地部署(包含使用cmake编译)

需要的环境(推荐)

-windows 10 64bit【笔者使用的是win11】
-openpose 1.7.0
-cuda 11.1【笔者为cuda_12.3】
-cudnn 8.0.5.39
-visual studio 2019【笔者使用的是VS2022】
-cmake 3.20.2 【笔者使用的是3.29.0】

基础环境安装

由于需要使用’cmake-gui’,此还需要去下载安装cmake,地址: https://cmake.org/download/,
请将Cmake添加到环境变量

编译openpose

这里使用的源码是1.7.0版本,地址是:(此方法不推荐,下载很多依赖会失败,官方的库有时会丢失)
https://github.com/CMU-Perceptual-Computing-Lab/openpose/archive/refs/tags/v1.7.0.zip
下载后解压,在源码根目录新建个文件夹build,这个文件夹是用来存放编译生成的文件的。另外,openpose还依赖caffepybind11(这是为了能在python中去调用openposeapi)

下载整合包[推荐]缺失的依赖已经下载安装,还没有编译,也可以下载编译完成版本

地址为:
(整合包文件)https://github.com/carrollpolo/openpose/releases/download/v1.0.0/OpenPose_Revise.zip
(模型文件)https://github.com/carrollpolo/openpose/releases/download/v1.0.0/models.zip
(编译后文件)https://github.com/carrollpolo/openpose/releases/download/v1.0.0/build.zip
下载完成后全部解压缩,之后将modelsbuild放入OpenPose_Revise文件夹下

然后可以点击OpenPose_Revise\build\x64\Release路径下的exe文件运行,最好使用OpenPoseDemo.exe

具体成果为

以下是通过cmakeVS2022编译的方法

首先将OpenPose_Revisemodels解压缩,将模型文件放入OpenPose_Revise下,如下图所示

通过Powershell导入OpenPose_Revise文件夹目录,新建一个build文件,使用下面的命令

1
mkdir build
1
cd build 
1
cmake-gui ..

会得到下面的效果

点击configure会选择相应的选择相应的Visual Studio版本,选择自己的版本,其他默认

然后点击configure,会得到下面的效果

会出现红色警告,不用担心,这只是确认以下,再次点击configure会得到下面场景

在上面图片依次点击configureGenerate,然后你会发现Open Project图标可以点击了

点击进入Visual Studio,把Debug改为Release,点击本地Windows调试器

有时会出现乱码,不用担心,这是当中的中文

编译完成后会出错

这是因为

  1. models文件没有导入
  2. \OpenPose_Revise\build\bin下需要加载的动态链接库(DLLs)未加载

解决方法

  1. models文件复制一份到\OpenPose_Revise\build\x64\Release路径下(之前是没有的,需要生成一次)
  2. \OpenPose_Revise\build\bin下所有的dll文件复制到\OpenPose_Revise\build\x64\Release路径下

然后在Visual Studio下重新生成一次

再次编译后就不会报错了,如下图

然后在\OpenPose_Revise\build\x64\Release文件夹下会发现新编译出来.exe文件

然后就可以使用OpenPose_Revise了!祝玩得愉快!

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

Hexo+Github建立个人博客

怎么使用hexo建立个人博客

所需环境

  • Node.js (Node.js 版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本)

  • Git

安装

  1. 使用npm安装Hexo
1
$ npm install -g hexo-cli     

安装完成后,可以输入hexo --version查看版本,确认是否安装

  1. 初始化Hexo

然后选择一个文件夹建立

1
$ hexo init <随便取一个名称>

或者建立一个文件夹cd <新文件夹>然后

1
hexo init

确定路径正确后,使用下面指令,安装所需的npm套件

1
$ npm install

完成后,进入文件夹可以看到下面的文件

1
2
3
4
5
6
7
8
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes

如下图所示

_config.yml

  • 有关网站配置的档案,可修改各种配置设定。 例如:网站标题、网站的网址、使用主题名称等等
  • 详细内容可以参考官方文件

package.json

记录所有载入的应用程序资料,也就是专案中需要的所有模组。

scaffolds 模板

  • 当我们建立新文章时,Hexo 会根据 scaffolds 中的模板建立相对应的档案
  • 资料夹中有三种预设布局:post、page 和 draft,分别对应:要发布的文章、页面、草稿

themes 主题

  • 用来存放主题的资料夹
  • Hexo 会根据主题来解析 scouce 资料夹中的档案并产生静态页面。 预设主题为 landscape

source 资源

  • 用来存放原始档案的地方,例如 Markdown 档、图片、各种页面(分页、关于等)

  • 通常资料夹命名开头会加上底线 _,例如 _imgs

  • _ 开头的档案、资料夹或隐藏档案会被忽略,除了 _posts 资料夹以外

  • Markdown 档和 HTML 档会被解析,并放到 public 资料夹,而其他档案则会被拷贝过去

source & public & .deploy_git 的差别

  • 执行 $ hexo generate 之后,会将 scorce 文件夹中的 Markdown 档和 HTML 档进行解析,再结合主题进行渲染,生成我们看到的静态网站
  • 执行 $ hexo deploy 之后,则会将 public 文件夹中的内容部署到 GitHub,并生成 .deploy_git 资料夹,因此内容与 public 几乎相同
  • 这三者的关系可想成:
1
source -> public -> .deploy_git

常用指令

接着介绍一些 Hexo 常会用到的相关指令语法,更多详细指令可参考官方文件

new 新增文章

1
$ hexo new [layout] <title>
  • 如果没有设定 layout,则会使用 _config.yml 中的 default_layout 来设定
  • 如果标题有包含空格,需使用引号括住,例如" title"
  • 接着可直接到 /source/_posts/title.md 中编辑文章内容
  • 档案名称尽量以英文命名,避免出现乱码

若是对 Markdown 相关语法不熟悉,可参考这篇笔记:Markdown 格式介绍

clean 清除静态档案与快取

1
$ hexo clean

在每次储存修正后的档案之前,会建议先输入此指令,清除快取档案 (db.json)和已产生的静态档案(public)。

generate 产生静态档案

1
$ hexo generate

可简写成 hexo g,生成静态档案。

server 启动服务器

  • 在本地端启动 Hexo 服务器,预设路径为:http://localhost:4000/

  • 可在自己电脑上预览设定结果,按 Ctrl + C 即可关闭

    一种更简单的方法是hexo d -g,这也是我经常使用的

部署到Github

基本部署

在git bash输入ssh -T git@github.com,如果如下图所示,出现你的用户名,那就成功了。

然后,我们将hexoGithub关联起来,将Hexo上的文章部署到GitHub上,打开博客根目录下的_config.yml文件,修改最后一行的配置:(如下)

1
2
3
4
5
deploy:
type: git
repository: https://github.com/carrollpolo.github.io
branch: master

repository修改为你自己的github项目地址即可,就是部署时,告诉工具,将生成网页通过git方式上传到你对应的链接仓库中。

这个时候需要先安装deploy-git ,也就是部署的命令,这样你才能用命令部署到GitHub

命令如下:

1
npm install hexo-deployer-git --save

之后使用命令将文章部署到Github

1
hexo d -g

然后,你就可以在相应的域名找到你的博客了

别忘记在GitHub page页面开启网站

打开Settings

打开Page

更换为master分支,点击save,过一段时间就会出现https://carrollpolo.github.io 域名了

Icarus 主题自定义

本文是基于icarus 5.x的版本(4.x的版本差别不大)

布局

文章页面两栏布局
主题默认是三栏布局,在阅读文章时显得有些拥挤。可以通过配置的方式把所有文章变为两栏布局,在config.post.yml把需要的widget显示在一边即可,可以参考官方文档。

但两栏整体宽度跟三栏不同,因此强制指定为三栏布局,并且修改相应的宽度,这样所有的页面侧边栏宽度保持一致。
在博客根目录,添加以下2个文件
_config.page.yml
_config.post.yml
都添加以下内容即可

1
2
3
4
5
6
7
8
9
10
widgets:
-
type: recent_posts
position: left
-
type: categories
position: left
-
type: tags
position: left

diff:layout/layout.jsx如下

1
2
3
4
             <Head site={site} config={config} helper={helper} page={page} />
- <body class={`is-${columnCount}-column`}>
+ <body class={`is-3-column`}>
<Navbar config={config} helper={helper} page={page} />

diff:layout/layout.jsx如下

1
2
3
4
                                 'is-12': columnCount === 1,
- 'is-8-tablet is-8-desktop is-8-widescreen': columnCount === 2,
+ 'is-8-tablet is-8-desktop is-9-widescreen': columnCount === 2,
'is-8-tablet is-8-desktop is-6-widescreen': columnCount === 3

diff:layout/common/widgets.jsx如下

1
2
3
4
5
6
7
8
 function getColumnSizeClass(columnCount) {
switch (columnCount) {
case 2:
- return 'is-4-tablet is-4-desktop is-4-widescreen';
+ return 'is-4-tablet is-4-desktop is-3-widescreen';
case 3:
return 'is-4-tablet is-4-desktop is-3-widescreen';
}

并优化在不同屏幕小大下的宽度

diff:include/style/responsive.styl如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 +widescreen()
+ .is-3-column .container
+ max-width: $widescreen - $gap
+ width: $widescreen - $gap
+
.is-1-column .container, .is-2-column .container
max-width: $desktop - 2 * $gap
width: $desktop - 2 * $gap

+fullhd()
+ .is-3-column .container
+ max-width: $fullhd - 2 * $gap
+ width: $fullhd - 2 * $gap
+
.is-2-column .container
max-width: $widescreen - 2 * $gap
width: $widescreen - 2 * $gap

目录粘性定位

原来只支持侧边栏整体粘性定位,为了阅读体验,只针对目录开启粘性定位,增加 column-left is-sticky 类,并调整样式

diff:source/js/main.js如下

1
2
3
     if ($toc.length > 0) {
+ $toc.addClass('column-left is-sticky');
const $mask = $('<div>');

diff:include/style/widget.styl如下

1
2
3
+#toc
+ max-height: calc(100vh - 22px)
+ overflow-y: scroll

默认显示目录

新版支持直接配置,在_config.yml增加toc: true即可

You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.