问题:是否有使用 Github 提供的 noreply 电子邮件进行 git push 的解决方法,而无需取消勾选“阻止暴露我的电子邮件的命令行推送”?

如果我运行git config --global user.email,我会得到:16969914+jamesray1@users.noreply.github.com

然后,如果我运行git push并在我的 Github 电子邮件设置中勾选“阻止暴露我的电子邮件的命令行推送”,它不起作用,输出中带有error: GH007: Your push would publish a private email address.。我无法将此电子邮件地址添加到 Github,因为它已经添加(如果我尝试,我会收到错误通知)。如果我取消勾选“阻止暴露我的电子邮件的命令行推送”,那么git push可以工作。我读过这些文章:

  • https://help.github.com/articles/setting-your-commit-email-address-in-git/

  • https://help.github.com/articles/about-commit-email-addresses/

  • https://help.github.com/articles/setting-your-commit-email-address-on-github/

-

我向 Github 支持发送了一条消息,但如果有人有任何想法,请随时回答。

解答

我怀疑在您更改设置之前,您已经提交了提及您的真实电子邮件的提交。您现在应该修改您的本地提交,以便它们使用 github 的代理电子邮件

基于这个答案,它会像(我没有测试它!):

$ git filter-branch --commit-filter '
      if [ "$GIT_AUTHOR_EMAIL" = "REAL_EMAIL" ];
       then GIT_AUTHOR_EMAIL="PROXY_EMAIL";
      fi;
      if [ "$GIT_COMMITTER_EMAIL" = "REAL_EMAIL" ];
       then GIT_COMMITTER_EMAIL="PROXY_EMAIL";
      fi; 
      git commit-tree "$@" '  -- @{u}..

这假设您不想更改您的姓名,只更改电子邮件。我相信选择器@{u}..应该准确地选择您要推送的那些提交。

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐