git命令

remote

1
2
3
4
5
6
7
❯ git remote -v
origin https://gitlab.ui.k8s.cn/sre/test.git (fetch)
origin https://gitlab.ui.k8s.cn/sre/test.git (push)
#添加
❯git remote add origin ssh://git@gitlab.ui.k8s.cn:2224/sre/test.git
#移除
❯ git remote remove origin

checkout

单个文件回滚

1
2
3
4
5
6
7
8
#获取版本commit SHA-1 标识符前8位
git log

#回滚到指定版本
git checkout 0ebdd2639e8 _config.yml

#撤消此更改并还原文件的最新版
git checkout HEAD index.html

如果有其他分支,不会clone到本地

1
2
3
4
5
git branch -a

git checkout -b src origin/src

git pull origin src

log

查看提交历史,其中包含每个提交的详细信息,包括提交消息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
❯ git log -n2
commit cb2c4d369dc59d0cb93d3042cf17e309da849a6b (HEAD -> main)
Author: cs <cs876321722@outlook.com>
Date: Tue Feb 13 14:01:52 2024 +0800

up main

commit cda0cdddd2de6b03346a12fe477a076ebfeb068e
Author: cs <cs876321722@outlook.com>
Date: Tue Feb 13 11:53:44 2024 +0800

up ci.yml
❯ git log --format="%h %s" -n2
cb2c4d3 up main
cda0cdd up ci.yml

%h: 提交的缩短哈希值。
%H: 提交的完整哈希值。
%s: 提交消息的主题(第一行)。
%b: 提交消息的正文部分(除去主题部分)。
%an: 作者的名称。
%ae: 作者的电子邮件地址。
%ad: 作者日期(默认格式)。
%ar: 相对日期(例如,“2 weeks ago”)。
%cn: 提交者的名称。
%ce: 提交者的电子邮件地址。
%cd: 提交日期(默认格式)。
%cr: 相对日期(例如,“2 weeks ago”)。

rebase

git rebase -i [startpoint] [endpoint]指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit(注:该区间指定的是一个前开后闭的区间)。

1
git rebase -i HEAD~3

这里的 HEAD~3 表示合并最近三次的提交修改

将第3行的 pick 改为 s, “s” 为 “squash” 的缩写,“squash” 的意思是将这个提交压缩为最后一次提交:wq

如果是个人分支 git rebase -i 最后一次commitID, s屏蔽其他,只保留一个

当出现Successfully rebased and updated refs/heads/xxx.表示合并成功了

merge

合并分支(开发分支dev合并到主分支master)

1、首先切换到master分支上
git checkout master
2、确保master代码是最新的代码
git pull origin master
3、然后我们把dev分支的代码合并到master上
git merge dev
4、然后查看状态及执行提交命令
git status

cached

文件从 Git 跟踪中删除,但将其保留在文件系统

1
git rm --cached <file>

git rm #将文件从 Git 仓库和文件系统中完全删除

show

1
2
3
4
5
#查看已添加到 Git 索引的文件内容
git show :_config.yml

# <commit> 是要查看的提交的 SHA-1 标识符
git show <commit>:<path>

pull

稀疏检出sparse checkout

git pull

push

1
2
3
4
5
git clone https://gitee.com/tookoff/x-spring-boot.git

❯ git add .
❯ git commit -m "提交"
❯ git push origin master:develop

git push :

其中 <remote_name> 表示远程仓库名称(通常为 origin);<local_branch> 表示本地分支名称;<remote_branch> 表示远程分支名称。如果不指定 <remote_branch>,则会在远程仓库创建与本地分支同名的新分支。

pre-receive hook declined

push前置检查

脚本错误/权限不足/返回非零状态码/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
!/bin/bash
read oldrev newrev refname

if [[ "$refname" == "refs/heads/master" ]]
then
# 获取最后一次提交的提交信息
message=$(git log --format=%B -n 1 $newrev)
# 提取出bug号
bug=$(echo "$message" | grep "bug" | awk '{print $2}')
# 检查bug是否存在
if [[ -z $bug ]]
then
echo "提交信息必须包含bug号"
exit 1
fi
fi

exit 0

pull

稀疏检出sparse checkout

avd

创建AVD失败

see log 查看日志

1
2
WARN - vdmanager.AvdManagerConnection - Failed to create the SD card. 
WARN - vdmanager.AvdManagerConnection - Failed to create sdcard in the AVD folder.

目录权限

1
2
cs@debian:~/repository/Android/sdk$ chmod +x tools/*
cs@debian:~/repository/Android/sdk$ chmod +x platform-tools/*

安装

1
sudo apt-get install  lib32z1 lib32ncurses5 #代替ia32-libs  

创建提示

/sdk/emulator/mksdcard: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory

1
2
cs@debian:~$ locate libgcc_s.so.1
/lib/x86_64-linux-gnu/libgcc_s.so.1

可以看到系统x86_64 不支持32

WARN - vdmanager.AvdManagerConnection - /home/cs/repository/Android/sdk/emulator/mksdcard: error while loading shared libraries: libgcc_s.so.1: cannot open shared object file: No such file or directory
error while loading shared libraries: libgcc_s.so.1: wrong ELF class: ELFCLASS64

docker-compose

安装

git下载地址:https://github.com/docker/compose/releases

v1

推荐pip安装

1
2
3
sudo pip install -U docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose -version
v2
1
2
3
4
5
6
7
8
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

❯ docker compose version
Docker Compose version v2.29.2

tab提示 https://docs.docker.com/engine/cli/completion/

docker

安装 engine

卸载旧版
sudo apt-get purge docker.io*

编辑 /etc/apt/sources.list.d/docker.list

1
echo 'deb https://apt.dockerproject.org/repo debian-jessie main'> /etc/apt/sources.list.d/docker.list

安装依赖: apt-transport-https

1
2
3
sudo apt-get install docker-engine
docker version
...permission问题

创建组

1
2
3
4
 cat /etc/group | grep ^docker  #不存在
sudo groupadd docker #存在忽略,创建组
sudo gpasswd -a ${USER} docker #添加当前用户到组
sudo restart #重启生效
载入天数...载入时分秒... ,