检索已删除或合并分支的内容或修改

时间:2015-12-15 16:38:16

标签: git patch branching-and-merging

假设已在分支上进行了一些开发,已在Master中创建,批准和合并了拉取请求,并且该分支已被删除。

是否可以检索在此分支中进行的修改,例如提取补丁?或者是否有可能恢复分支以访问其内容?或者我们可以用标签实现一种解决方法吗?

2 个答案:

答案 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*
  • 对于您正在进行合并提交的情况,您将需要oldSHA1 ^ 2

如果所有其他方法都失败了,请尝试搜索影响您知道由丢失的分支更改的文件的提交。 (如果可能,请使用其他分支通常不会修改的文件。)

git log master -- path/to/file