git 的一些使用经验

2023 年 10 月 1 日 星期日(已编辑)
/
356
这篇文章上次修改于 2024 年 10 月 6 日 星期日,可能部分内容已经不适用,如有疑问可询问作者。

git 的一些使用经验

1.修改提交邮箱

运行 git config --global user.email "新邮箱"

2.批量修改历史 commit 的邮箱

因为更换了邮箱地址,所以需要更改一下

项目目录下运行以下代码

git filter-branch -f --env-filter '
OLD_EMAIL="旧邮箱"
CORRECT_NAME="用户名"
CORRECT_EMAIL="新邮箱"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
  export GIT_COMMITTER_NAME="$CORRECT_NAME"
  export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
  export GIT_AUTHOR_NAME="$CORRECT_NAME"
  export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

运行后等待一会,才会开始运行(等待期间若有问题可以退出)

完成后运行 git push -f 强制推送即可

3.GPG 密钥加签

偶然发现在 Github 上进行的 commit 有 verified 的标志,本地 git 提交的就没有

了解了一下,发现需要 gpg 验证

打开 Git Bash 命令行,运行 gpg --gen-key 即可生成密钥对(需要输入邮箱、用户名,然后设置证书密码)

运行 gpg --list-key 即可列出公钥

运行 gpg --list-secret-keys 列出密钥

运行 gpg -a --export 导出公钥

运行 gpg -a --export-secret-keys 导出密钥

把公钥填到 Github 里,并复制这里的 Key ID

然后在 Git Bash 里运行

git config --global user.signingkey 你的KeyID

这样就可以为以后的提交设置身份了(需要 密钥对邮箱、本地 git 提交邮箱以及 Github 的主要邮箱 一致)

IDEA 等需要设置一下

就是每次 commit 需要输入密码验证(嫌麻烦建议别搞这东西)

4.为历史 commit 加签

把项目拉取下来

在项目目录打开命令行

运行 git rebase -i --root

跳出文件后,把需要修改的 commit 的 pick 改成 edit,然后关闭文件

命令行里会变成如下内容

运行 git commit --amend -S

其中 amend 表示修正, S 表示加签

同样的,这个命令也可以用于修改 commit 的提交者信息 git commit --amend --author="FoskyM <i@fosky.top>"

git commit --amend --author="FoskyM <i@fosky.top>" -S 即可修改提交者信息并加签

会跳出文件,你可以把 commit message 也顺手改了,然后关闭文件即修改完 commit 了

第一下会跳出密码验证,后续不需要

运行 git rebase --continue 继续修改下一条 commit,重复之前操作直到出现以下内容

运行 git push -f 推送至仓库

再打开仓库 commit 记录查看,都有 verified 的标志了,顺眼多了

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...