登录
  • 人们都希望被别人需要 却往往事与愿违
  • 古代愚民政策是不许民众受教育, 现代愚民政策是只许民众受洗脑教育

如何更改git commit user?

瞎搞 Benny小土豆 2550次浏览 1067字 2个评论

乔治·奥威尔有言

历史不是一面镜子,而是黑板上的记号,可以随时擦去,随时填补。更为可怕的是,一旦涂改了,你找不到证据去证明这是篡改历史的行为。

Git会追踪每一次commit的历史记录,如果之前不小心配置错了用户名,那么有办法改掉吗?

当然了办法是有的,改掉commit username和email是很容易的,不就是这么几行嘛?

git rebase -i f25f719f7c2333d310696c3ed41e5a90ed078e55

弹出的交互式窗口,把要改的commit从pick改成edit

如何更改git commit user?

然后不停地

git commit --amend --author="Cool <[email protected]>" --no-edit && git rebase --continue

就可以了

如何更改git commit user?

事实果真如此吗?git push -fv试试看?

如何更改git commit user?
如何更改git commit user?


妈勒个巴子,时间不对啊,明明是Feb的怎么就变成了现在的时间了。这不就露馅了吗!

千辛万苦找到一个名字叫git-filter-repo的东西,试了一下是可以的。

先安装,比如说 apt install git-filter-repo

然后创建一个mailmap文件,格式如下

New <[email protected]> BennyThink <[email protected]>

如有需要可以写多行

然后

git filter-repo --mailmap /etc/mailmap

然后再push,如果遇到缺失remote的问题,重新添加一下

git remote add origin https://github.com/tgbot-collection/history
git push --set-upstream origin master -fv

优秀吧!全变成对应的名字和邮箱了,并且commit的时间也没有改变。git log和GitHub是一致的。

如何更改git commit user?

如果想要只改几个commit的邮箱,那怎么办呢?

比如说只想改前两个

git filter-repo --refs master~2..master --mailmap /etc/mailmap

如何更改git commit user?

如果想改某个中间的一些commit的邮箱为某个人、并且还不改变GitHub上显示的时间呢?甚至不敢确定这种是否可行😂

emmm这个我还不太知道,其实不太知道refs是什么意思,尝试了很久也不行

看到git-filter-repo里写着

git filter-repo ... --refs C..H
git filter-repo ... --refs C..H ^D
git filter-repo ... --refs D..H ^C

H应该指的是HEAD?

总之,暂时够用了😂


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/change-git-user.html
喜欢 (40)
分享:-)
关于作者:
If you have any further questions, feel free to contact me in English or Chinese.
发表我的评论(代码和日志请使用Pastebin或Gist)
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)
(2)个小伙伴在吐槽
  1. 所以还是要加gpg签名防止别人把自己的改了😂
    iridium2022-07-04 12:00 回复
  2. 您好~我是腾讯云开发者社区运营,关注了您分享的技术文章,觉得内容很棒,我们诚挚邀请您加入腾讯云自媒体分享计划。完整福利和申请地址请见:https://cloud.tencent.com/developer/support-plan 作者申请此计划后将作者的文章进行搬迁同步到社区的专栏下,你只需要简单填写一下表单申请即可,我们会给作者提供包括流量、云服务器等,另外还有些周边礼物。
    rantrism2022-06-29 10:47 回复