1

一个心怀不满的开发人员离开了一个项目,破坏了 git 存储库,我现在被带上了。我不确定她到底做了什么,但事实如下:

  • 之前在 github 中有一个完整的提交历史,我知道我想要成为当前头部的提交的 SHA
  • 我只能使用 github url 中的 SHA 查看此提交:https://github.com/[USER]/[Project]/tree/d5f7068fcef33791418e3e1d2b954162403e7c8b
  • 当我在本地签出项目时,除了她所做的最后一次提交之外,它不会提取任何历史记录,这只是一个空白的自述文件:

    $ git log
    commit 4cbfb43f76a41df6de6f66354566377c2ef2ab0d
    Author: Author
    Date:   Sun Sep 1 20:39:47 2013 +0300
    
        initial
    

我不能变基,因为我的本地仓库不知道 SHA 的提交,因为只有这个提交来自 github。我想要的历史似乎是孤儿。

有没有办法直接从 github (origin) 通过 SHA 检查另一个提交,然后指出这一点?

还有其他想法吗?

4

2 回答 2

0

我最终从 github 上的最后一次良好提交下载了 repo 的 zip,然后将所有文件添加并提交到了被破坏的 repo。我丢失了所有以前的提交历史,但至少现在有一个工作回购。

于 2013-09-10T16:05:19.997 回答
0

你应该可以做 a git merge <SHA>,因为坏的开发者做了一个 rebase ,会抱怨,但考虑到她只是简单地 rebase 到初始提交,听起来解决冲突会相对容易。

如果您的本地存储库不知道提交 - 但远程存储库知道 - 然后尝试创建远程存储库的新克隆并查看您正在寻找的提交是否存在。据我了解git,如果提交是远程存在的,并且您克隆存储库,您应该能够访问该提交。

于 2013-09-04T12:39:26.437 回答