在我再继续之前,让我解释为什么我们不能做:
git checkout -b <branch> <sha>
基本上,分支机构(我们称之为 dev1 )在另一台开发人员的机器上。他做了一些提交并推动了他们。这个分支是从另一个分支(我们称之为功能)分支的,这个分支正在重命名为开发。 开发是作为功能的一个分支创建的,然后删除了功能。 然后,其他开发人员在本地和远程删除了开发人员的分支( dev1 )。当使用github for windows时,他发现我们要求推送所有分支,因此他删除了整个文件夹(跳过了回收站)并重新克隆了回购。 所以现在他做不了:
git reflog
因为它没有任何历史记录。我无法看到他的提交,因为他们从未被本地拉到我的机器上。
那么,考虑到这一点,有没有办法远程恢复他的 dev1 分支? 我一直在寻找一个命令来显示所有被删除的远程分支,但到目前为止,一直无法找到这样的命令。
任何帮助都可以避免数周的开发工作!
答案 0 :(得分:1)
您可以使用GitHub Events API查看过去90天内为用户或回购发生的最近300个事件(在每页30个事件中分页)。在那里,您可以搜索该分支上的最后一个推送事件,从而获得您需要重新实例化为分支的SHA-1。
电子。 G。在这里,您可以看到我最近的活动:https://api.github.com/users/Vampire/events,https://api.github.com/users/Vampire/events?page=2,a。秒。 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,a。秒。 O操作。