【问题标题】:GitHub showing incorrect head commitGitHub 显示不正确的头部提交
【发布时间】:2017-05-23 12:44:39
【问题描述】:

我和一位同事遇到了一个奇怪的 GitHub 异常,似乎无法弄清楚或理解它。

背景

我们有一个应用程序,它使用我们在大型比较引擎中使用的文本片段提交到 GitHub 存储库。我们只在 master 分支上工作。我们不使用任何其他分支。

问题

当通过 GitHub 访问 repo 时,最新提交显示为 XXXXXX(出于本讨论的目的)。我们开发的应用程序返回的错误表明 HEAD 提交与预期不符,并且在运行时

git log

提交 YYYYYY 显示为 HEAD。 提交 YYYYYY 不会显示在 GitHub 提交日志中,但是当注入到 github 提交查看 URL 时,它会显示提交。

两次提交具有相同的提交时间。

问题

  1. 以前有没有人经历过这种情况?
  2. 什么会导致这种行为?

分辨率

之后我们进行了额外的提交以更改 HEAD,但提交 YYYYYY 仍然没有显示在 GitHub UI 中:(

【问题讨论】:

  • @sajibkahn - 本地提交已被推送 - 正如我所提到的,如果您将提交哈希注入 GitHub 提交查看器 URL,您可以查看它。
  • 谁强推?
  • @EdwardThomson 哈哈 - 没有完成强制推送,因为提交是由我们正在处理的系统完成的。

标签: git github version-control github-api


【解决方案1】:

你可以通过这种方式在github中找到提交历史:

github -> 图表选项卡 -> 网络。

查看commit id order,应该和git log一致。

或者您可以使用git log --oneline --decorate --graph --all 进行进一步分析。

在本地 repo 中,您使用 git log --oneline --decorate --graph --all,HEAD 指向 YYYYYY。请检查父项(在 YYYYYY 之前提交 id)是否为 XXXXXX。

如果它的parent是XXXXXX,则表示本地提交YYYYYY没有被推送到github。

如果它的父级不是 XXXXXX 而是 ZZZZZZ。现在你需要在 github 上检查一下,如果 XXXXXX 的父级是 ZZZZZZ。如果是这种情况,这意味着当您几乎同时将 XXXXXX 和 YYYYYY 推送到 github 时,其中一个失败了。结构如下:

A---B---…---Z---X
             \
              Y

【讨论】:

  • 嘿@Marina,此列表中缺少提交,不幸的是我无法将其标记为我的问题的解决答案
  • 我更新了我的答案以供进一步分析,你可以顺便查一下。
  • @N15M0_jk,这个答案对你解决问题有帮助吗?
  • 嗨@Marina,它仍然没有正确解释我遇到的问题 - 你提到“这意味着本地提交 YYYYYY 没有推送到 github”,尽管我在解释中声明当我将提交哈希注入 github 提交 URL,它会出现。关于育儿问题,我无法再检查了,因为我通过之后的小提交解决了这个问题,然后在 github 提交日志中显示了丢失的提交。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
  • 2018-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多