在我继续之前,让我解释一下为什么我们不能做:
git checkout -b <branch> <sha>
基本上分支(我们称之为 dev1)在另一个开发者的机器上。他已经完成了一些提交并将它们推高了。这个分支是从另一个分支(我们可以称之为 Features)分支出来的,该分支被重命名为 development。 development 被创建为 Features 的一个分支,然后 features 被删除了。 开发人员的分支 (dev1) 随后被其他开发人员在本地和远程删除。在使用 github for windows 时,他发现我们要求推送的所有分支,因此他删除了整个文件夹(跳过了回收站)并重新克隆了 repo。 所以现在他不能做:
git reflog
因为它没有任何历史。我看不到他的提交,因为它们从未在本地 pull 到我的机器上。
那么,考虑到这一点,有没有办法远程恢复他的 dev1 分支? 我一直在寻找一个命令来显示所有已删除的远程分支,但到目前为止,一直无法找到这样的命令。
任何帮助都将避免数周的开发工作!
最佳答案
您可以使用 GitHub Events API查看在过去 90 天内为用户或存储库发生的最后 300 个事件(每页分页 30 个事件)。您可以在那里搜索该分支上的最后一个推送事件,从而获得您需要重新实例化为分支的 SHA-1。
E. G。在这里你可以看到我最近的事件:https://api.github.com/users/Vampire/events , https://api.github.com/users/Vampire/events?page=2 , 一种。秒。 o.
或者这里是存储库 vivin/gradle-semantic-build-versioning
的事件:https://api.github.com/repos/vivin/gradle-semantic-build-versioning/events , https://api.github.com/repos/vivin/gradle-semantic-build-versioning/events?page=2 , 一种。秒。 o.
关于git - 恢复远程 Git 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39372980/