【问题标题】:Set remote branch to a commit we don't have locally将远程分支设置为我们在本地没有的提交
【发布时间】:2012-10-07 12:05:34
【问题描述】:

昨天有个实习生强推了master。在我们完成责骂之后,;) 我们查看了结果。幸运的是,我们在一台机器上拥有几乎最新版本的 master,只有一些 pull request 需要再次合并。

但是有一件事困扰着我:我们在最后一个合并的拉取请求中找到了旧的 HEAD 提交(在 github 上),但是由于没有分支或标签再指向它,我们找不到任何方法来拉取该提交(git pull origin <SHA1> 无效)或为该提交设置远程分支。你觉得有什么办法吗?

【问题讨论】:

  • 访问服务器并就地执行 git reset 怎么样?

标签: git github branch git-branch remote-branch


【解决方案1】:

从您的评论中假设您使用GitHub

您应该询问GitHub 技术支持来检查您的GitHub 项目的reflog。如果不到 30 天过去了,您的 reflog 仍将包含您正在寻找的提交。如果您知道,只需将哈希传递给他们。要求他们将 HEAD 重置到此提交中。

这些链接应该很有用:

http://sitaramc.github.com/concepts/reflog.html

https://github.com/contact

P.S.如果他们提示您如何自己做 - 请在此处发布作为答案。

已添加:这是有关该主题的重要链接:https://help.github.com/articles/commit-exists-on-github-but-not-in-my-local-clone

【讨论】:

  • 好吧,如果你们中的任何人仍然有损坏之前的最后一次提交(最近结帐,访问该 inter 的机器),这很容易,只需查看 here。您应该能够通过简单地查看模块的最近提交列表来获得最后一次提交的 SHA-1。如果您只缺少一些提交,您可以从 github 下载它们作为 diff,然后在本地重新申请。否则,只需联系 github 的支持即可。
【解决方案2】:

如果你可以在 GitHub 上看到提交,例如https://github.com/[org]/[repo]/commit/[sha] 但它是孤立的,当你克隆/获取 repo 时 GitHub 不会包含它。

不过,如果您将 URL 稍微更改为 https://github.com/[org]/[repo]/tree/[sha],您可以 use the branch dropdown 在该提交处创建一个分支:

【讨论】:

    猜你喜欢
    • 2011-03-13
    • 2015-05-08
    • 2015-07-24
    • 2013-08-31
    • 2017-11-03
    • 2020-03-01
    • 1970-01-01
    • 2019-12-06
    • 1970-01-01
    相关资源
    最近更新 更多