这篇文章主要讲解了“怎么修改git全部已提交的用户名和邮箱”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么修改git全部已提交的用户名和邮箱”吧!
即:修改git所有commit中的用户名和email
配置方法:
git config --global user.email "youremail@google.com"
git config --global user.name "your name"
但是补救措施只对以后的 commit 起效。如果想修改之前的作者信息,Github 给出了可靠的官方指南:Changing author info。我打算照做的时候却发现第三步要复制粘贴的脚本怎么也找不到…后来意识到是 Gist 被墙了 = = 魂淡!
挂上 SS 终于看到了完整脚本…把我翻译后的完整步骤贴到下面来。
改变作者信息
为改变已经存在的 commit 的用户名和/或邮箱地址,你必须重写你 Git repo 的整个历史。
警告:这种行为对你的 repo 的历史具有破坏性。如果你的 repo 是与他人协同工作的,重写已发布的历史是一种不好的习惯。仅限紧急情况执行该操作。
使用脚本改变你 repo 的 Git 历史
我们写了一段能把 commit 作者旧的邮箱地址修改为正确用户名和邮箱的脚本。
注意:执行这段脚本会重写 repo 所有协作者的历史。完成以下操作后,任何 fork 或 clone 的人必须获取重写后的历史并把所有本地修改 rebase 入重写后的历史中。
在执行这段脚本前,你需要准备的信息:
欲修改的旧的邮箱地址
正确的用户名和邮箱地址
1.打开终端(Mac 或 Linux 用户)或命令行(Windows 用户)。
2.创建一个你的 repo 的全新裸 clone (repo.git 替换为你的项目,下同)
git clone --bare https://github.com/user/repo.git
cd repo.git
3.复制粘贴脚本,并根据你的信息修改以下变量:
OLD_EMAIL
CORRECT_NAME
CORRECT_EMAIL
脚本:
#!/bin/sh git filter-branch --env-filter ' OLD_EMAIL="your-old-email@example.com" CORRECT_NAME="Your Correct Name" CORRECT_EMAIL="your-correct-email@example.com" 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 --tags4.按
Enter
执行脚本。5.查看新 Git 历史有没有错误。
6.把正确历史 push 到 Github:(push 有困难时记得修改 DNS 或者搭×××)
git push --force --tags origin 'refs/heads/*'
7.清除临时 clone。
cd ..
rm -rf repo.git
All done!现在遗失的 contribution 都回来啦~新的一年记得在 Github 上勤打卡~
感谢各位的阅读,以上就是“怎么修改git全部已提交的用户名和邮箱”的内容了,经过本文的学习后,相信大家对怎么修改git全部已提交的用户名和邮箱这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。