我已将我的 Git 作者姓名更改为 “首尾 < [email protected] >”到“首尾 < [email protected] >”
这两个电子邮件地址与不同的 Github 帐户关联,我正在将所有个人项目迁移到第二个帐户。
我的问题是,我过去在一些私有(private)存储库上的所有工作(我是唯一的贡献者)都是使用第一个帐户完成的。迁移的代码似乎是由其他用户提交的。如何强制更改所有提交以使用我的新 Git 作者姓名?
如果我能做到这一点,我就可以将更改强制推送到 Github,并且所有工作似乎都已由用户 First Last 完成,这就是我想要的。
谢谢!
最佳答案
最简单的方法是:
- 从新的 GitHub 位置克隆您的存储库
- 更改所有提交的作者:请参阅“How do I change the author of a commit in git? ”,基于
git filter-branch
- 强行将他们推回(因为你是唯一的贡献者)
我会recommend this solution ,这不会盲目地更改提交(如果您 merge 了其他开发人员的补丁)
#!/bin/bash
git filter-branch --env-filter '
if [ "$GIT_AUTHOR_NAME" = "<old author>" ];
then
GIT_AUTHOR_NAME="<new author>";
GIT_AUTHOR_EMAIL="<<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="344d5b4159555d5874475b59515c5b47401a514c40" rel="noreferrer noopener nofollow">[email protected]</a>>";
fi
if [ "$GIT_COMMITTER_NAME" = "<old committer>" ];
then
GIT_COMMITTER_NAME="<new commiter>";
GIT_COMMITTER_EMAIL="<<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bdc4d2c8d0dcd4d1fdced2d0d8d5d2cec993d8c5c9" rel="noreferrer noopener nofollow">[email protected]</a>>";
fi
' -- --all
关于git - 更改帐户后覆盖所有 Git 作者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12242464/