恢复已删除git分支中丢失的更改

恢复已删除git分支中丢失的更改,git,Git,我得到了一系列的改变。做了更改,在本地测试,思考我承诺并推动了这些更改(这是昨天)。设计师今天问我关于它们的事,我检查了一下,它们并没有在生产中展示,也没有在我的工作机器上展示。该分支已被删除 我是一个git新手,所以经过一些搜索,我发现了get reflog,能够找到包含所有更改的提交,并基于此签出一个新分支。当我签出分支时,我在网站上看到更改,当我切换回主分支时,更改消失了——这正是我所期望的 现在,我无法将这些更改合并到master中;当我尝试合并时,git说它已经是最新的了 为了举例说明

我得到了一系列的改变。做了更改,在本地测试,思考我承诺并推动了这些更改(这是昨天)。设计师今天问我关于它们的事,我检查了一下,它们并没有在生产中展示,也没有在我的工作机器上展示。该分支已被删除

我是一个git新手,所以经过一些搜索,我发现了
get reflog
,能够找到包含所有更改的提交,并基于此签出一个新分支。当我签出分支时,我在网站上看到更改,当我切换回主分支时,更改消失了——这正是我所期望的

现在,我无法将这些更改合并到master中;当我尝试合并时,git说它已经是最新的了

为了举例说明,我提供了一些屏幕截图:

我的“uhoh”分支:

主分支机构:

同样,在branch master上运行
git merge uhoh
时,它的响应是“已经是最新的”。这显然是有区别的,我只是不知道如何从uhoh拿到大师级。

你试过了吗

git cherry-pick SHA1-of-commit
?


您可以在主机上运行
cherry pick
,它将获取特定的提交并将其应用于当前分支。更多信息

也许uhoh已经被合并到master中,但后来提交了uhoh中的一些更改?试着运行
git log--oneline--graph--decoration master uhoh
,你应该能够看到情况是否如此。事实并非如此,但我喜欢你的命令给我的输出,我相信它在未来会非常有用。而且,如果我在采摘所有樱桃之前就有了它,它会让我更清楚地知道我需要关注哪些。很高兴你发现它很有用。如果您发现自己经常使用该命令(和我一样),您可以为它创建一个别名:
git config--global alias.lg“log--oneline--graph--decoration”
。然后就是
git lg
。这对于实现所有这些更改非常有效。如果我在采摘樱桃之前看到Ajedi32的评论,那么就更容易看到我在该分支期间所做的所有承诺的SHA。谢谢