Skip to content

Git 相操作

Git

git 相关操作

切换分支

shell
#检查分成
git branch
#切换到 main 分支
git checkout main
#检查分成
git branch
#切换到 main 分支
git checkout main

Git 添加机器 ssh 密钥

shell
git config --global user.name 'dooy'
git config --global user.email 'dooy520@qq.com'
ssh-keygen -t rsa -C 'dooy520@qq.com'

cat ~/.ssh/id_rsa.pub #获取公钥
git config --global user.name 'dooy'
git config --global user.email 'dooy520@qq.com'
ssh-keygen -t rsa -C 'dooy520@qq.com'

cat ~/.ssh/id_rsa.pub #获取公钥

获取到公钥后,需要将公钥添加到 github 上 https://github.com/settings/keys 添加

shell
#添加后 用下面进行测试
ssh -T git@github.com
#添加后 用下面进行测试
ssh -T git@github.com

token 访问

https://github.com/settings/tokens?type=beta

git ssh 方式加速

vim ~/.ssh/config

shell
Host github.com
    HostName 154.91.179.100
    User git
    Port 6088
Host github.com
    HostName 154.91.179.100
    User git
    Port 6088

git 合并 fork

shell
git remote add upstream https://github.com/Test-2022/git-learn.git(原来项目地址)
git remote -v
# ---上面只做一次---
git fetch upstream
git checkout main
git merge upstream/main
git remote add upstream https://github.com/Test-2022/git-learn.git(原来项目地址)
git remote -v
# ---上面只做一次---
git fetch upstream
git checkout main
git merge upstream/main

git 回滚

shell
#查看历史 找到你想回滚的版本
git log
#回滚到你想回滚的版本
git reset --hard <commit-hash>
#提交仓库
git push origin main --force
#查看历史 找到你想回滚的版本
git log
#回滚到你想回滚的版本
git reset --hard <commit-hash>
#提交仓库
git push origin main --force

git 合并 PR

https://zhuanlan.zhihu.com/p/456872464?utm_id=0

docker 相关

shell
docker commit  php  php56fpm:me
docker commit --change='ENTRYPOINT cd /nserver && npm run sk.server ' node18 nServer:1
docker commit  php  php56fpm:me
docker commit --change='ENTRYPOINT cd /nserver && npm run sk.server ' node18 nServer:1

docker 安装

shell
#!/bin/bash

# Step 1: 更新apt包索引
sudo apt-get update

# Step 2: 安装必要的软件包
sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

# Step 3: 添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Step 4: 设置 Docker 的稳定版本仓库
echo "deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Step 5: 更新 apt 包索引
sudo apt-get update

# Step 6: 安装 Docker
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

# Step 7: 验证 Docker 是否安装成功
docker --version

# Step 8: 添加用户到docker组(可选)
sudo usermod -aG docker $USER
echo "Please log out and log back in to apply the changes for Docker to run without sudo."
#!/bin/bash

# Step 1: 更新apt包索引
sudo apt-get update

# Step 2: 安装必要的软件包
sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

# Step 3: 添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Step 4: 设置 Docker 的稳定版本仓库
echo "deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Step 5: 更新 apt 包索引
sudo apt-get update

# Step 6: 安装 Docker
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

# Step 7: 验证 Docker 是否安装成功
docker --version

# Step 8: 添加用户到docker组(可选)
sudo usermod -aG docker $USER
echo "Please log out and log back in to apply the changes for Docker to run without sudo."

使用 docker tag 命令为本地镜像添加新的标签

shell
  #docker tag image1:latest(本地镜像)ydlhero/pigaiphp:tagname(新添加的镜像)
  #docker tag php56fpm:me ydlhero/pigaiphp:5.6
  docker tag elastic:2.4 ydlhero/elastic:2.4
  docker push ydlhero/pigaiphp:5.6

  docker tag nserver:1 ydlhero/nserver:1

  docker tag engine7095:last ydlhero/engine7095:last

  docker commit  penly_service  penly:service01
  docker tag penly:service01 ydlhero/penly:service01
  docker push ydlhero/penly:service01
 docket  ENTRYPOINT
  #docker tag image1:latest(本地镜像)ydlhero/pigaiphp:tagname(新添加的镜像)
  #docker tag php56fpm:me ydlhero/pigaiphp:5.6
  docker tag elastic:2.4 ydlhero/elastic:2.4
  docker push ydlhero/pigaiphp:5.6

  docker tag nserver:1 ydlhero/nserver:1

  docker tag engine7095:last ydlhero/engine7095:last

  docker commit  penly_service  penly:service01
  docker tag penly:service01 ydlhero/penly:service01
  docker push ydlhero/penly:service01
 docket  ENTRYPOINT

导出 导出入镜像

shell
  docker save ydlhero/pigaiphp:5.6 -o php5.6.docker.tag
  docker load -i php5.6.docker.tag

  ## 起批改网php 容器
docker run --name php -v /data/app:/data/app -p 9000:9000 -itd ydlhero/pigaiphp:5.6
  docker save ydlhero/pigaiphp:5.6 -o php5.6.docker.tag
  docker load -i php5.6.docker.tag

  ## 起批改网php 容器
docker run --name php -v /data/app:/data/app -p 9000:9000 -itd ydlhero/pigaiphp:5.6

看故障目录

docker inspect xstroke --format='{{json .Mounts}}'
docker inspect xstroke --format='{{json .Mounts}}'

Docker 清理

shell
docker system prune #清理缓存 会删除容器
docker image prune #进删除无用的镜像
docker volume prune #命令来清理。 #docker image prune 和
docker system prune #清理缓存 会删除容器
docker image prune #进删除无用的镜像
docker volume prune #命令来清理。 #docker image prune 和

删除 Docker 容器日志

shell
echo ""> /var/lib/docker/containers/<容器ID>/<容器ID>-json.log
echo ""> /var/lib/docker/containers/<容器ID>/<容器ID>-json.log
  • 导致一个问题 docker log --tail 100 容器ID 不能使用
  • 启动的时候 指定下
shell
docker run \
  --log-driver json-file \
  --log-opt max-size=10m \    # 单个日志文件最大10MB
  --log-opt max-file=3 \      # 最多保留3个旧日志文件
  your_image
docker run \
  --log-driver json-file \
  --log-opt max-size=10m \    # 单个日志文件最大10MB
  --log-opt max-file=3 \      # 最多保留3个旧日志文件
  your_image

docker 安装 9999 sunoproxy 代理

开 9999 代理 给程序使用的

shell
git clone https://github.com/Dooy/cockroachai.git

cd cockroachai

./docker-install.sh

cd sunoproxy

./deploy.sh
git clone https://github.com/Dooy/cockroachai.git

cd cockroachai

./docker-install.sh

cd sunoproxy

./deploy.sh

window 安装 ads 等环节

shell
Set-ExecutionPolicy Bypass -Scope Process -Force
.\install.sp1
scoop install git
Set-ExecutionPolicy Bypass -Scope Process -Force
.\install.sp1
scoop install git

安装 brew

shell
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

mysql 相关

清理 bin-log

  • 清除 binlog.000010 之前的所有日志文件
sql
PURGE BINARY LOGS TO 'binlog.000010';
PURGE BINARY LOGS TO 'binlog.000010';
  • 通过日期来清除日志
sql
PURGE BINARY LOGS BEFORE '2024-09-01 00:00:00';
PURGE BINARY LOGS BEFORE '2024-09-01 00:00:00';

清理 表数据

sql
TRUNCATE TABLE logs
TRUNCATE TABLE logs

sendmail 服务器搭建记录

debian 下搭建(不行工作白干 还是得回到 centos)

shell
sudo docker pull debian:11.5
sudo docker run --name mail2 --hostname zahei.com  -itd debian:11.5

sed -i "s@http://\(deb\|security\).debian.org@http://mirrors.tencent.com@g" /etc/apt/sources.list

sed -i "s@http://\(deb\|security\).debian.org@http://repo.huaweicloud.com@g" /etc/apt/sources.list


sudo docker exec -it mail2 /bin/bash
apt-get install sendmail
apt-get install vim  # 安装完成后 卸载apt-get autoremove vim
apt-get install dovecot-pop3d # apt-get  autoremove dovecot-core

apt-get install libsasl2-2 sasl2-bin libsasl2-modules

docker commit  mail2  pigaimail:2.0

sudo docker run --name mail2.1 -p 2025:25 -p 2110:110 --hostname jukuu.com  -itd pigaimail:2.0
sudo docker run --name mail2.2 -p 25:25 -p 110:110 --hostname zahei.com  -itd pigaimail:2.0

makemap hash /etc/mail/access.db < /etc/mail/access

# https://www.cloudbooklet.com/how-to-install-and-setup-sendmail-on-debian-10/
# smtp加证书
# http://t.zoukankan.com/feihongwuhen-p-7170991.html
# smtps 开启
# https://blog.51cto.com/zhangxifan/1194726
sudo docker pull debian:11.5
sudo docker run --name mail2 --hostname zahei.com  -itd debian:11.5

sed -i "s@http://\(deb\|security\).debian.org@http://mirrors.tencent.com@g" /etc/apt/sources.list

sed -i "s@http://\(deb\|security\).debian.org@http://repo.huaweicloud.com@g" /etc/apt/sources.list


sudo docker exec -it mail2 /bin/bash
apt-get install sendmail
apt-get install vim  # 安装完成后 卸载apt-get autoremove vim
apt-get install dovecot-pop3d # apt-get  autoremove dovecot-core

apt-get install libsasl2-2 sasl2-bin libsasl2-modules

docker commit  mail2  pigaimail:2.0

sudo docker run --name mail2.1 -p 2025:25 -p 2110:110 --hostname jukuu.com  -itd pigaimail:2.0
sudo docker run --name mail2.2 -p 25:25 -p 110:110 --hostname zahei.com  -itd pigaimail:2.0

makemap hash /etc/mail/access.db < /etc/mail/access

# https://www.cloudbooklet.com/how-to-install-and-setup-sendmail-on-debian-10/
# smtp加证书
# http://t.zoukankan.com/feihongwuhen-p-7170991.html
# smtps 开启
# https://blog.51cto.com/zhangxifan/1194726
shell
docker run --name mail --hostname pigai.com  -itd debian:11.5

mail from:root@localhost
rcpt to:root@zahei.com
data
hey duan, you are so

define(`SMART_HOST',`jukuu.com')dnl
define(`RELAY_MAILER', `esmtp')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
docker run --name mail --hostname pigai.com  -itd debian:11.5

mail from:root@localhost
rcpt to:root@zahei.com
data
hey duan, you are so

define(`SMART_HOST',`jukuu.com')dnl
define(`RELAY_MAILER', `esmtp')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl

centos sendmail 搭建

shell
 sudo docker pull centos:8.4.2105

 sudo docker run --name cmail --hostname zahei.com  -itd centos:8.4.2105

sed -i "s@http://mirror.centos.org@http://mirrors.tencent.com@g" ./CentOS-Linux-BaseOS.repo
sed -i "s@http://mirrorlist.centos.org@http://mirrors.tencent.com@g" ./CentOS-Linux-BaseOS.repo
sed -i "s@http://mirrorlist.centos.org@http://mirrors.tencent.com@g" ./CentOS-Linux-AppStream.repo

sudo sed -i "s@http://.*archive.ubuntu.com@http://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@http://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list


sudo sed -i "s@http://deb.debian.org@http://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list


#=====
docker pull centos:6.10
sudo docker run --name cmail610 -p3025:25 --hostname zahei.com  -itd centos:6.10
sed -i "s@http://mirrorlist.centos.org@http://vault.centos.org@g"  ./CentOS-Base.repo
sed -i "s@http://@https://@g"  ./CentOS-Base.repo
curl  https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo -o /etc/yum.repos.d/CentOS-Base.repo

docker commit  cmail610  pigaimail:610
docker commit  dmail610  pigaimail:610
docker tag  pigaimail:610 ydlhero/pigaimail:610

sudo docker run --name dmail610 -p 4025:25 -p 4110:110 --hostname zahei.com -itd pigaimail:610
sudo docker run --name mail -p 25:25 -p 110:110 --hostname jukuu.com -itd ydlhero/pigaimail:610

define(`confCACERT_PATH', `/etc/mail/certs')
define(`confCACERT', `/etc/mail/certs/cacert.pem')
define(`confSERVER_CERT', `/etc/mail/certs/mycert.pem')
define(`confSERVER_KEY', `/etc/mail/certs/mykey.pem')

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')

测试 YWxsQHphaGVpLmNvbQ==  all@zahei.com
YWxsQGp1a3V1LmNvbQ== all@jukuu.com
cGlnYWkyMDIy
 sudo docker pull centos:8.4.2105

 sudo docker run --name cmail --hostname zahei.com  -itd centos:8.4.2105

sed -i "s@http://mirror.centos.org@http://mirrors.tencent.com@g" ./CentOS-Linux-BaseOS.repo
sed -i "s@http://mirrorlist.centos.org@http://mirrors.tencent.com@g" ./CentOS-Linux-BaseOS.repo
sed -i "s@http://mirrorlist.centos.org@http://mirrors.tencent.com@g" ./CentOS-Linux-AppStream.repo

sudo sed -i "s@http://.*archive.ubuntu.com@http://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@http://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list


sudo sed -i "s@http://deb.debian.org@http://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list


#=====
docker pull centos:6.10
sudo docker run --name cmail610 -p3025:25 --hostname zahei.com  -itd centos:6.10
sed -i "s@http://mirrorlist.centos.org@http://vault.centos.org@g"  ./CentOS-Base.repo
sed -i "s@http://@https://@g"  ./CentOS-Base.repo
curl  https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo -o /etc/yum.repos.d/CentOS-Base.repo

docker commit  cmail610  pigaimail:610
docker commit  dmail610  pigaimail:610
docker tag  pigaimail:610 ydlhero/pigaimail:610

sudo docker run --name dmail610 -p 4025:25 -p 4110:110 --hostname zahei.com -itd pigaimail:610
sudo docker run --name mail -p 25:25 -p 110:110 --hostname jukuu.com -itd ydlhero/pigaimail:610

define(`confCACERT_PATH', `/etc/mail/certs')
define(`confCACERT', `/etc/mail/certs/cacert.pem')
define(`confSERVER_CERT', `/etc/mail/certs/mycert.pem')
define(`confSERVER_KEY', `/etc/mail/certs/mykey.pem')

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')

测试 YWxsQHphaGVpLmNvbQ==  all@zahei.com
YWxsQGp1a3V1LmNvbQ== all@jukuu.com
cGlnYWkyMDIy

vscode 保存自动对齐设置

要在 VSCode 中配置 Prettier 以便在保存时自动格式化 JavaScript 文件,可以按照以下步骤进行设置:

  1. 安装 Prettier 插件

    • 确保你已经安装了 Prettier 插件。如果没有,去扩展市场搜索并安装 "Prettier - Code formatter"。
  2. 配置 VSCode 设置

    • 打开 VSCode 的设置(可以通过按 Ctrl + ,Cmd + ,)。
    • 搜索 editor.formatOnSave 并勾选它。这会在每次保存文件时自动格式化代码。
  3. 设置默认格式化器

    • 在设置中搜索 default formatter
    • 找到 Editor: Default Formatter 选项,并选择 esbenp.prettier-vscode
  4. 检查 Prettier 配置

    • 确保项目中有 .prettierrcprettier.config.js 等配置文件,以指定格式化规则。
    • 如果没有,可以创建一个简单的 .prettierrc 文件,例如:
      json
      {
        "semi": true,
        "singleQuote": true,
        "tabWidth": 2,
        "trailingComma": "es5"
      }
      {
        "semi": true,
        "singleQuote": true,
        "tabWidth": 2,
        "trailingComma": "es5"
      }
  5. 工作区设置

    • 如果只想在特定项目中启用,打开项目文件夹,然后在 .vscode 文件夹中创建或编辑 settings.json,添加:
      json
      {
        "editor.formatOnSave": true,
        "editor.defaultFormatter": "esbenp.prettier-vscode"
      }
      {
        "editor.formatOnSave": true,
        "editor.defaultFormatter": "esbenp.prettier-vscode"
      }
  6. 检查文件类型

    • 确保 Prettier 支持你正在编辑的文件类型。默认情况下,Prettier 支持 JavaScript、TypeScript、JSON 等。

完成这些设置后,保存 JavaScript 文件时,Prettier 应该会自动格式化代码。

优秀软件

其他

v2ray 安装

bash <(wget -qO- -o- https://git.io/v2ray.sh)

截断新思路

  • 注入到网页内
  • 重写覆盖 XMLHttpRequest.prototype.send 和 fetch
  • 适合搞到插件里面
js
const origFetch = window.fetch;

window.fetch = async (...args) => {
  const [resource, config] = args;
  let requestUrl;
  if (typeof resource === "string") {
    // 如果resource是字符串,直接使用它作为URL
    requestUrl = resource;
  } else if (resource instanceof Request) {
    // 如果resource是Request对象,获取它的url属性
    requestUrl = resource.url;
  }
  //console.log("url:", requestUrl, config);
  if (config.method != "POST" || !requestUrl.includes("/overview/home/asr")) {
    return origFetch(...args);
  }

  if (config && config.body instanceof FormData) {
    const entries = {};
    for (const [k, v] of config.body.entries()) {
      if (v instanceof File) {
        entries[k] = {
          name: v.name,
          size: v.size,
          type: v.type,
        };
        // 如果要拿内容,可以 FileReader 或 v.arrayBuffer()
      } else {
        entries[k] = v;
      }
    }
    config.body = JSON.stringify(entries);
    config.headers["Content-Type"] = "application/json";
    //console.log("Intercepted formData", entries);
  }
  //这个地方判断是否需要提交
  return origFetch(...args);
};
const origFetch = window.fetch;

window.fetch = async (...args) => {
  const [resource, config] = args;
  let requestUrl;
  if (typeof resource === "string") {
    // 如果resource是字符串,直接使用它作为URL
    requestUrl = resource;
  } else if (resource instanceof Request) {
    // 如果resource是Request对象,获取它的url属性
    requestUrl = resource.url;
  }
  //console.log("url:", requestUrl, config);
  if (config.method != "POST" || !requestUrl.includes("/overview/home/asr")) {
    return origFetch(...args);
  }

  if (config && config.body instanceof FormData) {
    const entries = {};
    for (const [k, v] of config.body.entries()) {
      if (v instanceof File) {
        entries[k] = {
          name: v.name,
          size: v.size,
          type: v.type,
        };
        // 如果要拿内容,可以 FileReader 或 v.arrayBuffer()
      } else {
        entries[k] = v;
      }
    }
    config.body = JSON.stringify(entries);
    config.headers["Content-Type"] = "application/json";
    //console.log("Intercepted formData", entries);
  }
  //这个地方判断是否需要提交
  return origFetch(...args);
};

主站恢复流程

  • 恢复流程 重启 大部分时间是 mq 导致的
shell
  docker start mq php74 redis
  cd /data/app/my-deploy/api
  sudo docker-compose down
  sudo ./ai.sh
  sudo /usr/local/openresty/nginx/sbin/nginx
  docker start mq php74 redis
  cd /data/app/my-deploy/api
  sudo docker-compose down
  sudo ./ai.sh
  sudo /usr/local/openresty/nginx/sbin/nginx