JOBCHER BLOG
Git 规则
Git 飞行规则(Flight Rules) 编辑提交(editting commits) 我刚才提交了什么? 我的提交信息(commit message)写错了 我提交(commit)里的用户名和邮箱不对 我想从一个提交(commit)里移除一个文件 我想删除我的的最后一次提交(commit) 删除任意提交(commit) 我尝试推一个修正后的提交(amended commit)到远程,但是报错: 我意外的做了一次硬重置(hard reset),我想找回我的内容 暂存(Staging) 我需要把暂存的内容添加到上一次的提交(commit) 我想要暂存一个新文件的一部分,而不是这个文件的全部 我想把在一个文件里的变化(changes)加到两个提交(commit)里 我想把暂存的内容变成未暂存,把未暂存的内容暂存起来 未暂存(Unstaged)的内容 我想把未暂存的内容移动到一个新分支 我想把未暂存的内容移动到另一个已存在的分支 我想丢弃本地未提交的变化(uncommitted changes) 我想丢弃某些未暂存的内容 分支(Branches) 我从错误的分支拉取了内容,或把内容拉取到了错误的分支 我想扔掉本地的提交(commit),以便我的分支与远程的保持一致 我需要提交到一个新分支,但错误的提交到了 main 我想保留来自另外一个 ref-ish 的整个文件 我把几个提交(commit)提交到了同一个分支,而这些提交应该分布在不同的分支里 我想删除上游(upstream)分支被删除了的本地分支 我不小心删除了我的分支 我想删除一个分支 我想从别人正在工作的远程分支签出(checkout)一个分支 Rebasing 和合并(Merging) 我想撤销 rebase/merge 我已经 rebase 过, 但是我不想强推(force push) 我需要组合(combine)几个提交(commit) 安全合并(merging)策略 我需要将一个分支合并成一个提交(commit) 我只想组合(combine)未推的提交(unpushed commit) 检查是否分支上的所有提交(commit)都合并(merge)过了 交互式 rebase(interactive rebase)可能出现的问题 这个 rebase 编辑屏幕出现’noop’ 有冲突的情况 Stash 暂存所有改动 暂存指定文件 暂存时记录消息 使用某个指定暂存 暂存时保留未暂存的内容 杂项(Miscellaneous Objects) 克隆所有子模块 删除标签(tag) 恢复已删除标签(tag) 已删除补丁(patch) 跟踪文件(Tracking Files) 我只想改变一个文件名字的大小写,而不修改内容 我想从 Git 删除一个文件,但保留该文件 配置(Configuration) 我想给一些 Git 命令添加别名(alias) 我想缓存一个仓库(repository)的用户名和密码 我不知道我做错了些什么 其它资源(Other Resources) 书(Books) 教程(Tutorials) 脚本和工具(Scripts and Tools) GUI 客户端(GUI Clients) 编辑提交(editting commits) 我刚才提交了什么?
JOBCHER BLOG
shell 脚本(1)
shell 脚本之变量 变量替换 语法 说明 ${变量名#匹配规则} 从变量开头进行规则匹配,将符合最短的数据删除 ${变量名##匹配规则} 从变量开头进行规则匹配,将符合最长的数据删除 ${变量名%匹配规则} 从变量尾部进行规则匹配,将符合最短的数据删除 ${变量名%%匹配规则} 从变量尾部进行规则匹配,将符合最长的数据删除 ${变量名/旧字符串/新字符串} 变量内容符合旧字符串则,则第一个旧字符串会被新字符串取代 ${变量名//旧字符串/新字符串} 变量内容符合旧字符串则,则全部的旧字符串会被新字符串取代 字符串处理 计算字符串长度 - 语法 说明 方法一 ${#string} 无 方法二 expr length “$string” string 有空格,则必须加双引号 获取子串在字符串中的索引位置 语法: expr index $string $substring 计算子串长度 语法: expr match $string substr 抽取子串 ${string:position} :从 string 中的 position 开始 ${string:position:length}:从 position 开始,匹配长度为 length ${string:-position}:从右边开始匹配 ${string:(position)}:从左边开始匹配 expr substr $string $position $length:从 position 开始,匹配长度为 length
JOBCHER BLOG
kubernetes 脚本快速安装
kubernetes 脚本快速安装 1、三台机器设置自己的 hostname(不能是 localhost) 1# 修改 hostname; k8s-01要变为自己的hostname 2hostnamectl set-hostname k8s-01 3# 设置 hostname 解析 4echo "127.0.0.1 $(hostname)" >> /etc/hosts 2、所有机器批量执行如下脚本 1#先在所有机器执行 vi k8s.sh 2# 进入编辑模式(输入i),把如下脚本复制 3# 所有机器给脚本权限 chmod +x k8s.sh 4#执行脚本 ./k8s.sh 1#/bin/sh 2 3#######################开始设置环境##################################### \n 4 5 6printf "##################正在配置所有基础环境信息################## \n" 7 8 9printf "##################关闭selinux################## \n" 10sed -i 's/enforcing/disabled/' /etc/selinux/config 11setenforce 0 12printf "##################关闭swap################## \n" 13swapoff -a 14sed -ri 's/.*swap.*/#&/' /etc/fstab 15 16printf "##################配置路由转发################## \n" 17cat <<EOF | sudo tee /etc/modules-load.
JOBCHER BLOG
Maven 安装编译
Maven 安装编译 Maven 就是专门为 Java 项目打造的管理和构建工具,它的主要功能有: 提供了一套标准化的项目结构; 提供了一套标准化的构建流程(编译,测试,打包,发布……); 提供了一套依赖管理机制。 默认结构: 1a-maven-project 2├── pom.xml 3├── src 4│ ├── main 5│ │ ├── java 6│ │ └── resources 7│ └── test 8│ ├── java 9│ └── resources 10└── target 项目的根目录a-maven-project是项目名, 它有一个项目描述文件pom.xml, 存放Java源码的目录是src/main/java, 存放资源文件的目录是src/main/resources, 存放测试源码的目录是src/test/java, 存放测试资源的目录是src/test/resources, 最后,所有编译、打包生成的文件都放在target目录里。 这些就是一个 Maven 项目的标准目录结构。 pom.xml 文件: 1<project ...> 2 <modelVersion>4.0.0</modelVersion> 3 <groupId>com.itranswarp.learnjava</groupId> 4 <artifactId>hello</artifactId> 5 <version>1.0</version> 6 <packaging>jar</packaging> 7 <properties> 8 ... 9 </properties> 10 <dependencies> 11 <dependency> 12 <groupId>commons-logging</groupId> 13 <artifactId>commons-logging</artifactId> 14 <version>1.
JOBCHER BLOG
Nodejs 安装编译
Nodejs 安装编译 Node.js 平台是在后端运行 JavaScript 代码,必须首先在本机安装 Node 环境。 安装 Node.js 安装 npm npm 其实是 Node.js 的包管理工具(package manager)。
JOBCHER BLOG
ruoyi-cloud docker部署
基础环境安装 1# docker 脚本安装 2curl -sSL https://get.daocloud.io/docker | sh 3 4#docker compose 脚本安装 5curl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 6 7 8#可执行权限 9sudo chmod +x /usr/local/bin/docker-compose 10#创建软链: 11sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose 12#测试是否安装成功 13docker-compose --version 下载安装 1git clone https://gitlab.sanjiang.com/it-group/ruoyi-cloud.git 编译 1cd ruoyi-cloud 2mvn clean install -DskipTests 复制 jar 包 1cd ./docker 2./copy.sh 部署 docker 1./deploy.sh base 2./deploy.sh modules 检查 docker 1docker ps -a | grep ruoyi 2docker logs -f ruoyi-auth 3docker logs -f ruoyi-gateway 4docker logs -f ruoyi-modules-system
JOBCHER BLOG
git版本控制
git 版本控制 版本回退 1.查看 git 提交历史 1#查看git提交历史 2git log 如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数 1git log --pretty=oneline 2.回退到上一个版本 Git必须知道当前版本是哪个版本,在 Git 中,用HEAD表示当前版本,也就是最新的提交b534d741..(注意我的提交 ID 和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上 100 个版本写 100 个^比较容易数不过来,所以写成HEAD~100 1git reset --hard HEAD^ 最新的那个版本已经看不到了,可以顺着往上找,找到那个版本的 ID 1git reset --hard c8275ca Git 在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git 仅仅是把HEAD从指向update 1┌────┐ 2│HEAD│ 3└────┘ 4 │ 5 └──> ○ update 6 │ 7 ○ Create README.md 8 │ 9 ○ init 改为指向 Create README.md: 1┌────┐ 2│HEAD│ 3└────┘ 4 │ 5 │ ○ update 6 │ │ 7 └──> ○ Create README.
JOBCHER BLOG
Linux crontab 命令
Linux crontab 命令 Linux crontab是用来定期执行程序的命令。 系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存 个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置 语法 1crontab [ -u user ] file 2crontab [ -u user ] { -l | -r | -e } 说明: crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。 -u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。 参数说明: -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe) -r : 删除目前的时程表 -l : 列出目前的时程表 时间格式如下: 1f1 f2 f3 f4 f5 program 2* * * * * 3- - - - - 4| | | | | 5| | | | +----- 星期中星期几 (0 - 6) (星期天 为0) 6| | | +---------- 月份 (1 - 12) 7| | +--------------- 一个月中的第几天 (1 - 31) 8| +-------------------- 小时 (0 - 23) 9+------------------------- 分钟 (0 - 59) 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推 当 f1 为 a, b, c,.
JOBCHER BLOG
linux 网络测速
linux 网络测速 一键测试脚本bench.sh 适用于各种 Linux 发行版的网络(下行)和 IO 测试: 显示当前测试的各种系统信息 取自世界多处的知名数据中心的测试点,下载测试比较全面 支持 IPv6 下载测速 IO 测试三次,并显示平均值 1wget -qO- bench.sh | bash 2#或者下面这命令下载执行 3curl -Lso- bench.sh | bash 欢迎关注我的博客www.jobcher.com
JOBCHER BLOG
docker 命令(2)
docker 命令(2) docker ps 命令 docker ps 能查看所有运行中的容器 docker ps -a 能查看所有的容器 docker rm -f $(docker ps -aq) 强制删除所有容器 docker run和docker create有什么区别 docker create命令能够基于镜像创建容器。 该命令执行的效果类似于docker run -d,即创建一个将在系统后台运行的容器。 但是与docker run -d不同的是,docker create创建的容器并未实际启动,还需要执行docker start命令或docker run命令以启动容器。 事实上,docker create 命令常用于在启动容器之前进行必要的设置。
JOBCHER BLOG
CICD 概念
CICD 概念 DevOps Devlopment 和 Operation 的组合词 规划-》代码-》构建-》测试-》发布-》部署-》运营-》监控-》再次规划 devOps 看作开发(软件工程)、技术运营和质量保障(QA)三者的交集 突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。 DevOps 希望做到的是软件产品交付过程中IT工具链的打通,使得各个团队减少时间损耗。更加高效的协同工作。良好的闭环可以大大增加整体的产出。 CICD 持续集成 持续部署 持续集成 持续集成是指软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。“持续集成”源自于极限编程(XP),是 12 最初的 12 种实践之一 Ci 需要具备这些: 1全面的自动化测试,这是实践持续集成和持续部署的基础,同时,选择合适的自动化测试工具也极其重要; 2灵活的基础设施。容器,虚拟化的存在让开发人员和QA不必再大费周折 3版本控制工具。如git,cvs,svn等 4自动化的构建和软件发布流程工具,如 Jenkins,flow.ci; 5反馈机制,如构建/测试的失败,可以快速地反馈到相关负责人,以尽快解决达到一个更稳定的版本。
JOBCHER BLOG
git使用方法
git 使用方法 一、git 安装配置 Debian/Ubuntu 1 apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ 2 libz-dev libssl-dev 3 4 apt-get install git 5 6 git --version 7 git version 1.8.1.2 Centos/RedHat 1 yum install curl-devel expat-devel gettext-devel \ 2 openssl-devel zlib-devel 3 4 yum -y install git-core 5 6 git --version 7 git version 1.7.1 二、git 拉取异常如何重新拉取 1.同一文件有修改,产生冲突。 先将本地修改存储起来 使用git stash命令,这样本地的所有修改就都被暂时存储起来 。其中stash@{0}就是刚才保存的标记。后续可以通过此标记访问。 再次拉取代码 1git pull 还原暂存的内容 1git stash pop stash@{0} 解决冲突 在存在冲突的文件中,Updated upstream 和=====之间的内容为拉取下来的代码,=====和stashed changes之间的内容就为本地修改的代码。解决完成之后,就可以正常的提交了。 5.