目录

cherry pick

阮一峰的教程

# 单个提交
git cherry-pick <commitHash>
# 连续多个提交
git cherry-pick <HashA> <HashB>

submodule

Git 工具 - 子模块

# 创建一个子模块
git submodule add git@gitlab.xxx.com:A/B.git
# 创建一个子模块并指定分支和路径
git submodule add -b feature/test001 -- "git@gitlab.xxx.com:A/B.git" "yyy/zzz/B"

# 更新子模块(子模块的内容切换为外部 repo 记录的 hash 号)
git submodule update --init --recursive
# 更新子模块(子模块的内容为对应分支上的最新提交)
git submodule update --init --recursive --remote

# 列出所有子模块
git submodule

压缩commit

git中利用rebase来压缩多次提交

git rebase -i HEAD~4

修改用户名和邮箱

Git 工具 - 重写历史

// 设置全局
git config --global user.name "Author Name"
git config --global user.email "Author Email"

// 或者设置本地项目库配置
git config user.name "Author Name"
git config user.email "Author Email"

// 修改最近一次提交的用户信息
git commit --amend --author="NewAuthor <NewEmail@address.com>"

回退到某个版本

git reset --hard fae6966548e3ae76cfa7f38a461c438cf75ba965

本次提交跳过 precommit 检查

git commit --no-verify -m "xxx"