假设已在分支上进行了一些开发,已在Master中创建,批准和合并了拉取请求,并且该分支已被删除。
是否可以检索在此分支中进行的修改,例如提取补丁?或者是否有可能恢复分支以访问其内容?或者我们可以用标签实现一种解决方法吗?
答案 0 :(得分:1)
如果您知道该分支中任何提交的哈希值,最好是最近的提交,那么您可以将分支恢复到您记住的哈希点。尝试做:
git checkout <hash> -b lost_branch
但是,这只能在某个实际包含已删除分支的存储库中工作。你需要以某种方式进入该服务器。
如果远程git存储库托管在github上,您可以导航到url:
https://github.com/<username>/<repository>/commit/<hash>
从这里开始,您可以使用github的Web UI创建PR,将丢失的历史记录合并到新的分支(或主分支)
答案 1 :(得分:1)
如果分支已被删除,但已合并为master,则可以恢复它,而无需登录其他计算机。
git log --grep 'find some identifying text such as an issue number' master
如果你不知道提交消息的文本,但是你知道旧的分支名称(假设它是使用默认设置合并的)
git log --grep 'branchname' master
其中任何一个都将返回受影响的提交,您可以通过执行
重新创建分支git checkout -b branchname oldSHA1*
如果所有其他方法都失败了,请尝试搜索影响您知道由丢失的分支更改的文件的提交。 (如果可能,请使用其他分支通常不会修改的文件。)
git log master -- path/to/file