登录
  • 人们都希望被别人需要 却往往事与愿违
  • 一群亿万富豪在人民大会堂里开两会 -- 他们管自己叫'无产阶级先锋队'

如何更改git commit user?

瞎搞 Benny小土豆 95次浏览 1067字 0个评论

乔治·奥威尔有言

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

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
喜欢 (9)
分享:-)
Benny小土豆
关于作者:
If you have any further questions, feel free to contact me in English or Chinese.
发表我的评论(代码和日志请使用Pastebin或Gist)
取消评论

                     

去你妹的实名制!

  • 昵称 (必填)
  • 邮箱 (必填,不要邮件提醒可以随便写)
  • 网址 (选填)