fast-forward merge是不生成任何的commit的,有时候在merge dev分支到main分支,结果merge之后忘记了却不知道上一个版本的main是运行在哪个commit下的。
读取reflog
git reflog | grep merge
yagam@express MINGW64 /d/github/git_test (master)
$ git reflog | grep merge
97f1e1c HEAD@{2}: merge feature-10: Fast-forward
9ffda27 HEAD@{23}: merge master: Fast-forward
15ed3c6 HEAD@{46}: merge hot-fix: Fast-forward
f2b4df2 HEAD@{57}: merge hot-fix: Fast-forward
找到 Fast-forward的记录
HEAD@{2}
那么早到上一个 HEAD@{3}
git show HEAD@{3}
返回的结果:
commit ea93e1b660202bf1d03714508c305fbb957490ef (origin/master, origin/HEAD)
Author: xxxxxx <xxxxxx@gmail.com>
Date: Wed Jun 18 15:58:09 2025 +0800
master 6
diff --git a/master-6.txt b/master-6.txt
new file mode 100644
index 0000000..62f9457
--- /dev/null
+++ b/master-6.txt
@@ -0,0 +1 @@
+6
\ No newline at end of file
最后这个ea93e1b是merge之前main所在的commit。checkout过去就行了。
1万+

被折叠的 条评论
为什么被折叠?



