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. 如果你认为机密是安全的推送,请按照工作流的绕过步骤操作:

延伸阅读