Skip to main content

提交疑难解答

解决常见的提交问题,例如不正确的用户链接、缺少本地提交和推送保护块。

提交链接到错误的用户

GitHub 通过将提交标头中的电子邮件地址与帐户上 GitHub 的电子邮件地址相匹配,将提交链接到用户。 如果提交链接到错误的用户或没有用户,请更新 Git 电子邮件设置并将电子邮件地址添加到帐户。

注意

如果提交链接到另一个用户,则不会授予他们对存储库的访问权限。

提交链接到其他用户

  1. 按照 设置提交电子邮件地址 更改本地 Git 配置中的电子邮件地址。 如果在多台计算机上工作,请针对每个计算机更改此设置。
  2. 按照 将电子邮件地址添加到GitHub帐户 将电子邮件地址添加到帐户。

将来使用电子邮件地址的提交将链接到你的帐户。

提交没有链接到任何用户

若要了解提交未链接的原因,请检查提交。GitHub

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在存储库的主页上的文件列表上方,单击“ commits”****。

    存储库的主页的屏幕截图。 时钟图标和“178 个提交”以橙色边框突出显示。

  3. 若要导航到特定提交,请单击该提交的提交消息。

    存储库提交列表中提交的屏幕截图。 “更新 README.md”以橙色边框突出显示。

  4. 将鼠标悬停在用户名右侧的蓝色 上。

  5. 使用消息确定要更新的内容:

    • 无法识别的作者(电子邮件地址): 将显示的电子邮件地址添加到帐户 GitHub 。
    • 无法识别的作者(无电子邮件地址): 在 Git 中设置提交电子邮件地址,然后将该地址添加到帐户 GitHub 。
    • 电子邮件无效: 在 Git 中设置有效的提交电子邮件地址,然后将该地址添加到帐户 GitHub 。

更新电子邮件设置后,旧提交可能不会链接。 请参阅“设置提交电子邮件地址”。

提交存在于GitHub但本地克隆中不存在

如果 git show COMMIT-SHA 在本地返回错误,但提交可见 GitHub,则本地克隆可能已过期,或者分支可能不再引用提交。

本地仓库已过期

从远程存储库提取信息。

git fetch REMOTE

用于 git fetch upstream 分支的上游存储库或 git fetch origin 克隆的存储库。

包含提交的分支已被删除

如果删除了分支或强制推送了分支,请询问在本地仍具有提交以将其推送到新分支的协作者。

git branch recover-B B
git push upstream B:recover-B

然后,提取恢复的分支。

git fetch upstream recover-B

避免强制推送

避免强制推送,除非必要,尤其是当多个人员可以推送到存储库时。 强制推送重写存储库历史记录,并可能会中断协作者或损坏的拉取请求。

推送保护阻止提交

推送保护会阻止包含支持的机密的提交、上传或 API 请求。

理解为什么推送保护阻止了你的提交

如果推送保护阻止工作,请在 GitHub 提交或请求中检测到受支持的机密。 在重试之前删除机密。

解决推送保护阻拦

  1. 查看推送保护消息以标识机密及其显示位置。
  2. 从提交、文件上传或 API 请求中删除机密。
  3. 再次尝试推送、提交、上传或请求。
  4. 如果你认为机密是安全的推送,请按照工作流的绕过步骤操作:

延伸阅读