利用 GitHub Actions 实现自动化部署 Hexo 到 Github Pages创建 Github 仓库我在 GitHub 建好两个仓库,为什么是两个?一个仓库也是可以的,直接参考Hexo 官方部署方案,流程简单很多。
两个仓库目的
1. 希望博客源码仓库私有化
2. Github Pages 仓库分开管理
Hexo 项目仓库
username.github.io 仓库
username 为 github 的账号名字。其他命名也是可以的,只是访问路径会变成 username.github.io/<仓库名>
创建个人访问令牌(Personal Access Token)因为我们需要在 Hexo 项目仓库 执行 Github Actions 向 username.github.io 仓库推送代码,由于 Github 权限限制,我们需要在 GitHub 账户中创建一个具有足够权限的个人访问令牌(Personal Access Token,简称 PAT)。这个令牌需要有足够的权限来修改仓库。
创建 Github Actions 脚本在你的 Hexo 项 ...
前言单纯的对一些经常用的 git 命令进行总结,方便以后查询使用,没啥营养
1. 基础12345678910111213git add <file> # 提交到 暂存区git commit -m "commnet" # 提交到 版本库git branch -M main # 重新命名分支git remote add origin # 添加远程仓库git pull origin master # 从名为 origin 的远程仓库的 master 分支拉取最新的提交,并将其合并到当前分支git push origin main # 将本地仓库的文件push到远程仓库(若 push 不成功,可加 -f 进行强推操作)git diff read.txt # 查看文件变化
2. 版本回退123git reset --hard HEAD^ # 恢复到上一个版本git reset --hard HEAD~10 # 恢复到网上10个版本git reset --hard co ...
前言数据库备份的重要性不言而喻,特别是在生产环境,任何数据的丢失都可能产生严重的后果。所以,无论什么环境,我们都应该有相应的备份策略来定时备份数据库。比较常用的逻辑备份工具是 mysqldump。
数据库备份脚本1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283#!/bin/bash# 设置数据库连接参数DB_HOST="localhost"DB_PORT="3306"DB_USER="root"DB_PASS="password"# 判断 DB_ID 是否为空DB_ID="123456" # 这里假设 DB_ID 是通过某种方式获取的,如果未设置则为空# 设置备份数据库名称DB_NAME="name"# ...
1、盖房项目需求1)需要建房子:这一过程为打桩、砌墙、封顶
2)房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不相同的。
3)请编写程序,完成需求。
2、传统方式解决盖房需求1)思路分析(图解)
2)代码演示
AbstractHouse 盖房子抽象类
1234567891011121314151617181920public abstract class AbstractHouse { /** * 打地基 */ public abstract void buildBasic(); /** * 砌墙 */ public abstract void buildWalls(); /** * 封顶 */ public abstract void roofed(); public void build() { buildBasic(); buildWalls(); ...
1、克隆羊问题现在有一只羊 tom,姓名为:tom,年龄为:1,颜色为:白色,请编写程序创建和 tom 羊属性完全相同的 10 只羊。
2、传统方式解决克隆羊问题1)思路分析
2)代码演示
Sheep 羊类
12345678910111213141516171819202122232425262728293031323334353637public class Sheep { private String name; private Integer age; private String color; public Sheep(final String name, final Integer age, final String color) { this.name = name; this.age = age; this.color = color; } public String getName() { retu ...
1、简单工厂模式1.1 看一个具体的需求看一个披萨的项目:要便于披萨种类的扩展,要便于维护
1)披萨的种类很多(比如 GreekPizza、CheesePizza 等)
2)披萨的制作有 prepare,bake,cut,box
3)完成披萨店订购功能
1.2 使用传统的方式来完成1)思路分析(类图)
2)代码演示
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495public abstract class Pizza { /** * 名字 */ protected String name; /** * 准备原材料,不同的披萨不一样,因此,我们做成抽象方法 */ public ab ...
1、基本介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个去的其对象实例的方法(静态方法)。
比如 Hibernate 的 SessionFactory,它充当数据存储源的代理,并负责创建 Session 对象。SessionFactory 并不是轻量级的,一般情况下,一个项目通常只需要一个 SessionFactory 就够,这是就会使用到单例模式。
2、单例模式的使用方式单例模式有八种方式:
1)[饿汉式(静态常量)]2)[饿汉式(静态代码块)]3)[懒汉式(线程不安全)]4)[懒汉式(线程安全,同步方法)]5)[懒汉式(线程安全,同步代码块)]6)[双重检查]7)[静态内部类]8)[枚举]
3、饿汉式(静态常量)3.1 应用实例步骤如下:
1)构造器私有化(防止 new)
2)类的内部创建对象
3)向外暴露一个静态的公共方法。getInstance
4)代码实现
1234567891011121314151617181920212223242526272829303132333435package com.wenz ...
一、掌握设计模式的层次1)第一层:刚开始学编程不久,听说过什么是设计模式
2)第二层:有很长时间的编程经验,自己写了很多代码,其中用到了设计模式,但是自己却不知道。
3)第三层:学习过了设计模式,发现自己已经在使用了,并且发现了一些新的模式挺好用的。
4)第四层:阅读了很多别人写的源码和框架,在其中看到别人设计模式,并且能够领会设计模式的精妙和带来的好处。
5)第五层:代码写着写着,自己都没有意识到使用了设计模式,并且熟练的写了出来。
二、设计模式介绍1)设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式(Design Pattern)代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。
2)设计模式的本质:提高了软件的维护性、通用性和扩展性,并降低了软件的复杂度。
3)《设计模式》是经典的书,作者是 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides Design(俗称“四人组 GOF ”)。
4)设计模式并不局限于某种 ...
