git - 在不更改日期的情况下重置 GitHub 上提交的名称和电子邮件
问题描述
像许多其他人一样,我已经提交了一个名称和电子邮件错误的存储库。虽然有很多关于如何更正这些信息和一些保留日期的帖子和解决方案,但我在 GitHub 上找不到保留日期的解决方案。
根据其他帖子,我能做的最好的事情如下:
“使固定”
- 设置正确的名称:
git config --local user.name "Correct Name"
- 设置正确的电子邮件:
git config --local user.email "correct@name.com"
- 从 root 更改所有提交:
git rebase -i --committer-date-is-author-date --rebase-merges --root
- 用“编辑”标记相关提交
- 对于每个提交,更改其作者和提交者:
git commit --amend --author "Correct Name <correct@name.com>" --no-edit && git rebase --continue
- 推送更改:
git push -f
它保留了日期,git log
但在 GitHub 上已更改。
我的问题是:如何在不更改GitHub 日期的情况下更改历史提交的用户名和电子邮件?
复制行为
- 在 GitHub 上创建一个存储库
- 克隆它:
git clone <link>
- 设置错误的名称:
git config --local user.name "Wrong Name"
- 设置错误的电子邮件:
git config --local user.email "wrong@name.com"
- 做一些提交
echo "Hello" > fun.txt
git add fun.txt
git commit -m "Add fun.txt"
echo "World" >> fun.txt
git add fun.txt
git commit -m "Update fun.txt"
git push
- 稍等片刻(足以看到时间变了)
- 做“修复”
- 检查
git log
显示正确的日期 - 检查 GitHub 是否显示错误的日期
注意:日期不一致
虽然我不需要挑选要编辑的提交,但对于所有这样做的人:日期可能会变得不一致,如下图所示。所以要小心盲目地使用上面的“FIX”。
解决方案
推荐阅读
- c++ - csv_name 不是 arma 的成员
- r - 获取值位置的函数
- visual-studio-code - 在 VSCode 中使用 IBM 区块链平台扩展部署链码时出错
- django - 在 Django 项目中无法忽略静态文件被推送到 git
- c# - 为什么我们必须对整数使用“转换”,而不是字符串?
- java - 在android中更改应用程序ID会破坏应用程序
- vue.js - Vue3 - i18n - 您正在运行 vue-i18n 的 esm-bundler 构建
- reactjs - 如何存储firestore集合参考并添加为firebase中不同集合的字段?
- file-upload - 验证后将文件上传到任何用户的谷歌驱动器
- cakephp - 网页上的图像卡在背景(css)后面