记录一次Git邮箱错误的修复方法

记录一次Git邮箱错误的修复方法

就在刚刚, 我发现我的minecraftctl 贡献者变成了两个人。可是我从未通过某人的PR请求啊?难道是我被盗号了?可是当我翻看commits时, 贡献者却是 BuildTools 这让我不禁疑惑,难道我的项目已经大到spigot都来贡献代码了?我是应该去看病了吗?

我第一时间运行git config user.email 查看了我项目中的邮箱。这一查果然发现了问题,邮箱被改成了spigot的邮箱,再仔细一回想,我瞬间明白了缘由

就在最近,我重装系统后忘记配置Git邮箱就使用了spigot发行的BuildTools本地构建spigot,在使用git之前是必须要配置邮箱的,spigot发现我没有配置邮箱,应该就为我默认配置了一个,我配置好私钥后就直接开始写代码了,结果就酿成了这样的惨剧。

推理归推理,问题也还是要解决的,我决定将问题分成远程和本地两个部分解决,因为我本地还有一些尚未推送的提交,那些可以使用reset来改,而远程的要改,最合适的就是使用rebase了。

由于本地有未提交的代码,是没法使用rebase的,于是我先克隆了远程的仓库,也正好先将远程的修改完

git clone git@github.com:MemoryShadow/minecraftctl.git minecraftctl_temp
cd minecraftctl_temp

在此项目目录中,我用git log确认了最开始受到影响的提交后,毫不犹豫执行了rebase

git rebase -i 39c3aafe4bf7d896ce4b7ec73e7f1d157a9e1c55

终端使用vi打开了rebase的界面,询问我要进行什么操作,我小心翼翼的将涉及的相关commits条目行首的pick改为edit并使用:wq保存。

或许你为什么会说:“为什么你不直接用:%s/^pick /edit”呢?不用这个的原因就是我害怕改错了,还是自己手动来吧,反正发现的及时,涉及的commits数目较少。

在保存后,就提示我可以修改了,rebase是从旧向新一条一条commits来改的。我这次的目的是修改邮箱和名字,于是我执行了下面这些命令

git commit --amend --author="MemoryShadow <MemoryShadow@outlook.com>" --no-edit
# 这条就是继续下一条,上面那条已经修改完了
git rebase --continue

在不断的执行上面这两条命令后,终于完成了所有commits的修改,我可以放心的强制推送到远程了

git push -f

至此,远程的问题已经解决了,本地的也用同样的方式解决就好(实际上我是使用的reset解决的,但是我现在要去吃饭咯~如果有问题欢迎在评论区留言讨论)

参考文章

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇