合并前如何签出git状态?

合并前如何签出git状态?,git,Git,我将一个git分支合并到我的主机中,但是现在我想在合并之前获取代码的状态。我不想恢复合并。我该怎么做?运行git log会显示数百次提交,但没有列出分支,因此我不确定如何找到提交哈希。建议运行git log master..,但这不会为我返回任何结果。如果合并提交是HEAD,则合并的提交是HEAD^1和HEAD^2(如果有两个以上的父级,则依此类推)。看看 git checkout master^2 # probably the branch merged in git checkout ma

我将一个git分支合并到我的主机中,但是现在我想在合并之前获取代码的状态。我不想恢复合并。我该怎么做?运行
git log
会显示数百次提交,但没有列出分支,因此我不确定如何找到提交哈希。建议运行
git log master..
,但这不会为我返回任何结果。

如果合并提交是
HEAD
,则合并的提交是
HEAD^1
HEAD^2
(如果有两个以上的父级,则依此类推)。看看

git checkout master^2  # probably the branch merged in
git checkout master^1  # probably master before the merge

尝试使用此命令查找哈希(头):


如果您尚未删除合并的分支。然后你可以用

git log branchMerged..master

它将列出主节点中存在的所有提交,以及合并的分支中不存在的所有提交


此处branchMerged:已合并的分支的名称。我假设您已合并到master中。

使用
git reflog
查看历史记录,您将看到如下内容:

72387432 (HEAD -> master, origin/master, origin/HEAD) HEAD@{4}: pull: Fast-forward
3df12c55 HEAD@{5}: checkout: moving from dev to master
合并发生在
72387432
,我知道这是因为拉(在我的例子中,合并来自git拉,在将PR合并到bitbucket中之后)。所以你要做的是在3df12c55之前结账:

git签出3df12c55
现在,您可以检查代码、执行测试等。当您想要返回master时,您可以运行
git checkout master

72387432 (HEAD -> master, origin/master, origin/HEAD) HEAD@{4}: pull: Fast-forward
3df12c55 HEAD@{5}: checkout: moving from dev to master