• flow
    • 提交:编辑区 -> 暂存区 -> 本地仓库 -> 远程仓库
    • 回退:远程仓库 -> 本地仓库 -> 暂存区 -> 工作区
    • 分支:创建 -> 暂存 <-> 切换 <-> 恢复 -> 提交 -> 合并

初始化为空仓库

# clone 仓库,然后新建空白分支
git checkout --orphan new_branch
# 删除所有文件,然后添加
git add -A
# 提交
git commit -am "Initial commit"
# 强制删除原 master 分支
git branch -D master
# 重命名之前新建的分支
git branch -m master
# 推送到远程仓库
git push -f origin master

修改历史提交信息

修改邮箱

#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="旧邮箱"
CORRECT_EMAIL="新邮箱"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

官方推荐方法: git-filter-repo