0%

git的使用

git 相关命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 添加远程受控地址
git remote add github [email protected]:User/UserRepo.git

# 查看分支
git branch
# 合并dev分支到本地,变成一条提交记录
git merge --squash dev
git merge --squash -s recursive -X theirs master20231016 --allow-unrelated-histories

# 新建空分支
git checkout --orphan emptybranch
# 下载代码
git checkout -b dev github/master
# 切换分支
git switch master

# 提交
git commit -m 'init commit'

# 删除文件
git rm -rf .
# 删除分支
git branch -D branchTemp
# 删除远程分支
git push origin --delete <branchName>

# 重命名本地分支
git branch -m devel develop

# 推送分支
git push -u origin master

git 基础设置

1
2
3
4
5
6
7
### 记得去除敏感信息
git config --global user.name "你的名字或昵称"
git config --global user.email "你的邮箱"

### 记住密码 ~/.gitconfig
[credential]
helper = store

git 配置文件示例 .git/config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[http]
proxy = http://64.00.00.26:8888
[remote "origin"]
url = http://git.xxxx.com:8888/team-kgq/kgq-xxx-website.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "dev202310"]
remote = origin
merge = refs/heads/dev202310
[credential]
helper = store

git 冲突解决方法 覆盖本地

  1. 其他方法
  2. 合并策略
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
--------------- 重置代码 -------------------

git checkout master
git reset --hard origin/master
git pull origin master
git branch

--------------- 冲突解决方案 -----------------

git status
git diff --name-only --diff-filter=u
## 标记已解决
git add README.md
git commit -m "feat: merge test 20231018"
git push origin test

--------------- 初始工程 -------------------

git clone http://ingit.11019fe.com:8888/team-kgq/kgq-xxx-api.git

git pull

git remote add github [email protected]:team-kgq/KGQ-xxx-Api.git

git fetch github

git 删除大文件

  1. 查看大文件
    1
    git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"
  2. 删除大文件
    1
    git filter-branch -f --prune-empty --index-filter 'git rm -rf --cached --ignore-unmatch newapi.phar' --tag-name-filter cat -- --all
  3. 推送到所有分支
    1
    git push origin --force --all

git代理

代理设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 一次性代理
git clone -c http.proxy="http://127.0.0.1:1087" https://github.com/
# 全局设置代理
git config --global http.https://github.com.proxy socks5://127.0.0.1:1086

# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy

在 ~/.ssh/config 文件中加入以下配置:
# 必须是 github.com
Host github.com
HostName github.com
User git
# 走 HTTP 代理
# ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=8080
# 走 socks5 代理
# ProxyCommand nc -v -x 127.0.0.1:1080 %h %p

代理安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 安装 tinyproxy
sudo apt install tinyproxy

# 修改配置文件
vim /etc/tinyproxy/tinyproxy.conf
# 修改端口号,尽量将该端口号修改为大于 1024,不然需要使用 root 权限才可以启动 tinyproxy
Port 8888
# 修改允许连接到 tinyproxy 的地址,如果没有特殊需求,可以直接将改行注释掉,允许所有 IP 访问
#Allow 127.0.0.1

# 启动代理服务器
service tinyproxy start

# 关闭代理服务器
service tinyproxy stop

# 重启代理服务器
service tinyproxy stop

127.0.0.1:8888

参考

  1. tinyproxy 配置 git代理服务器
  2. git 代理配置方案
  3. git 提交记录清除方案
  4. git 新建空分支
  5. git 删除大文件

android 简单操作

自动下载歌曲

  1. you-get 下载视频
  2. 通过ffmpeg获取音频
    1
    2
    3
    4
    5
    6
    7
    8
    filename=$1
    url=$2

    you-get -O ${filename} ${url}

    ffmpeg -i ${filename}.mp4 ${filename}.mp3

    echo "download "${filename}".mp3"
  3. 通过adb push放置到安卓设备
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ipHost=$1
    file=$2

    echo "connect phone:"${ipHost}

    adb connect ${ipHost}

    if [ -z ${file} ];
    then
    adb push *.mp3 /sdcard/fmzh
    else
    adb push ${file} /sdcard/fmzh
    fi

电脑连接手机

  1. android开启远程调试;通过adb connect进行连接

    1
    2
    3
    4
    5
    6
    7
    8
    for (( i=400000; i<=65536; i++))
    do
    echo $i
    adb connect 192.168.31.31:$i
    done

    使用配对码连接
    adb pair 192.168.31.31:41267
  2. 通过手机安装Termux ssh **

    1
    2
    3
    4
    5
    6
    sshd
    whoami
    passwd

    ssh [email protected] -p 8022
    cd /storage/shared/fmzh

语言助手

  • 需要硬件
  • 天猫精灵、Siri、小爱同学语音助手api开发

附件

  1. termux 下载地址

混沌工程

对于磁盘io、cpu高负载、强弱依赖、高并发等复杂线上环境,提供故障复现,以便快速定位故障、解决故障

示例工程

  1. chaosblade 命令行使用
  2. chaosblade-box 包含web界面,功能展示

docker工程里blade版本较低,建议使用github发布的版本,进行测试

环境要求

  1. k8s
  2. 同城、异地容灾
  3. 微服务强弱依赖

实际操作

实际操作要求

  1. 安装ansible
  2. 安装expect
  3. 通过ssh-keygen生成public key
  4. 安装jdk1.8
  5. 安装探针

存在问题

  1. 不同主机,不能远程处理
  2. docker安装,对于宿主主机如何处理

参考

  1. chaosblade 官网
  2. AHAS 商业开源功能对比
  3. chaosblade github地址
  4. chaosblade介绍

docker-compose 处理

安装

1
2
3
4
5
6
7
8
9
10
11
12
uname -s
uname -m
https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-Linux-x86_64

sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

chmod +x /usr/local/bin/docker-compose

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

## 检查版本
docker-compose version

使用

1
2
3
4
5
6
7
8
9
10
docker-compose up -d

docker-compose -f /root/soft/docker/rocketmq/docker-compose.yml up -d

docker-compose start

docker-compose stop

# 赋权
chown -R 3000:3000 ./

参考

  1. docker compose github地址
  2. docker compose 安装
  3. docker compose 命令使用

开发工具

phpmyadmin

1
2
3
docker pull phpmyadmin

docker run --name myadmin -d -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin:latest

dbgate

1
2
3
docker pull dbgate/dbgate

docker run -d -p 6688:80 -p 3000:3000 --name dbgate dbgate/dbgate

docker 传参

dockerfile

1
2
3
4
5
6
7
FROM fmzh/cqguide:v1.0.0

ENV domain=".appdlwebs.com"

EXPOSE 80

CMD chmod +x /usr/share/nginx/startGuide.sh && sh /usr/share/nginx/startGuide.sh ${domain} && nginx -g 'daemon off;'

docker run

1
2
docker build -t cqguide . 
docker run --name cqguide -e domain=".dlios.cc" -p 9988:80 -d cqguide

注意

  • ENV 变量可以在实例运行时传入

  • AVG 为在镜像生成时使用

    1
    docker build --build-arg JAR_FILE=build/libs/*.jar -t myorg/myapp .
  • RUN 执行一个命令,即在镜像加一层,创建实例时不会再执行

  • CMD 实例启动时执行的命令,以最后一条为准

  • ENTRYPOINT 实例启动时执行的命令,以最后一条为准

apijson 部署

镜像创建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 找不到java命令
cd /usr/sbin/
ln -s /root/soft/jdk1.8.0_291/bin/java java


# 将历史镜像删除干净
docker commit jdk1.8 fmzh/jdk1.8-cst
docker image build -t fmzh/apijson .
docker run --name apijson -p 8080:8080 -d fmzh/apijson
docker exec -it apijson bash

docker run --name apijson -p 8080:8080 -v /Volumes/T7/project/project_foxhello/apijsonboot-multidatasource/docker/upload:/root/app/upload -d fmzh/apijson


docker run -e JAVA_TOOL_OPTIONS="-Dapijson.debug=false" --name apijson -p 8080:8080 -v /Volumes/T7/project/project_foxhello/apijsonboot-multidatasource/docker/upload:/root/app/upload -v /Volumes/T7/project/project_foxhello/apijsonboot-multidatasource/docker/application.yml:/root/app/application.yml -d fmzh/apijson

docker logs -f apijson

# 查看系统语言
locale

# 日志乱码

镜像上传

1
2
3
4
docker tag fmzh/apijson fmzh/apijson:v1.0.0
docker push fmzh/apijson:v1.0.0

docker push fmzh/apijson

镜像版本规划

1
2
3
先提交版本号版本,再发布最新版本

docker tag时 如果别名存在, 原来的镜像会变成none名称

参考

  1. docker 更新并保存历史版本