git 的一些使用经验

  • A+
所属分类:系统文档

文章目录

修改默认分支为 main

运行 git config --global init.defaultBranch main

修改提交邮箱

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

批量修改历史 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 的一些使用经验
git 的一些使用经验

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

git 的一些使用经验

GPG 密钥加签

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

git 的一些使用经验

了解了一下,发现需要 gpg 验证
打开 Git Bash 命令行,运行 gpg --gen-key 即可生成密钥对(需要输入邮箱、用户名,然后设置证书密码)
运行 gpg --list-key 即可列出公钥

git 的一些使用经验

gpg --list-secret-keys 列出密钥
gpg -a --export 导出公钥
gpg -a --export-secret-keys 导出密钥

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

git 的一些使用经验

然后在 Git Bash 里运行

git config --global user.signingkey 你的KeyID

这样就可以为以后的提交设置身份了(需要 密钥对邮箱、本地 git 提交邮箱以及 Github 的主要邮箱 一致) IDEA 等需要设置一下(每个项目都需要改)

git 的一些使用经验

如果希望能一劳永逸的话,可以运行

git config --global commit.gpgsign true

git config --global gpg.program [git 安装目录]\\usr\\bin\\gpg.exe

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

为历史 commit 加签

把项目拉取下来
在项目目录打开命令行
运行 git rebase -i --root

git 的一些使用经验

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

git 的一些使用经验
git 的一些使用经验

命令行里会变成如下内容

git 的一些使用经验
运行 git commit --amend -S 其中 amend 表示修正, S 表示加签
同样的,这个命令也可以用于修改 commit 的提交者信息

git commit --amend --author="FoskyM <[email protected]>" -S 

即可修改提交者信息并加签

git 的一些使用经验

会跳出文件,你可以把 commit message 也顺手改了,然后关闭文件即修改完 commit 了
git 的一些使用经验

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

git 的一些使用经验

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

git 的一些使用经验

运行 git push -f 推送至仓库 再打开仓库 commit 记录查看,都有 verified 的标志了,顺眼多了

git 的一些使用经验

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: