git reflog 的全部日志 切换分支,少了 3 个版本号,有大佬解疑吗,会是 orgigin 、HEAD 这些问题吗
1 a1208340028 OP 执行 reset: moving to bfc86af4e3c3c7a912fdbade12163845279f17b8 这个命令,是我 git log 发现少了 3 个提交的版本号,然后我以为是有什么原因,然后就执行 git log ,然后 reset 到我最新的提交版本号,切回分支时就没有这个 3 个版本号 |
2 NessajCN 61 天前 bfc86af 这个是 origin/直 xx, 也就是远程仓库的 commit 你提交的那俩都只在本地 commit 了,origin 那边没同步 所以你切回 origin/直 xx 还是 bfc86af |
3 a1208340028 OP |
4 a1208340028 OP @NessajCN 但是都是本地,我本地回到分支,为什么是回到了我 origin 的版本,而不是我本地已 commit 的版本号 |
5 a1208340028 OP https://raw.githubusercontent.com/1208340028/mall/refs/heads/main/952988-acaxca515as.png 这个可以看到我执行 reset ,执行的 git log 版本,确实是 origin 那边的版本,而不是我本地已提交的 3 个版本号 |
6 NessajCN 61 天前 @a1208340028 po 一下你的 git branch 输出 |
7 GeruzoniAnsasu 61 天前 |
8 a1208340028 OP 大概操作流程: 1.远程仓库,origin 与本地 head 一致:bfc86af 2.我提交了:1abb9e9 3.再次提交:6775815 4.需求没有做完,提交了 tmp:0fb4ce0 5.切换到 main 分支, 6.main 分支开发完毕,提交到 origin 7.切回开发分支 8.然后发现我本地提交了 3 个版本消失 9.查看当前分支,误以为第一个版本为 tmp ,执行 reset bfc86af 10.发现还是少了 3 个版本 11.执行 reflog ,回滚到 tmp 版本,reset 0fb4ce0 |
9 NessajCN 61 天前 via Android @a1208340028 反正从 log 来看你 ckeckout 的就是 origin/直 xx 而不是本地直 xx 。 我也不知道你具体咋 checkout 的,猜一下的话是不是本地直 xx 跟远程直 xx 名字有出入… |
10 unused 61 天前 把每一步的命令贴出来 |
![]() | 11 skiy 61 天前 我看你不是切到本地的直分支,而是远程分支。建议你 history 看看操作记录。WIN 我不知道怎么查操作记录了。你是不是 git switch origin/直 XX 了? |
12 unused 61 天前 reflog 没打码的第一步就错了,“moving from 直 to bfc86” 说明你从分支 checkout 到了这个 commit. You are in 'detached HEAD' state. |
![]() | 13 Leon406 61 天前 origin/直, 直 远程和本地分不清楚 代码开发了,tmp 保存在本地分支 直, 切换分支到 main,开发完又切换到 origin/直 |
![]() | 14 Leon406 61 天前 如果命令行没有退出,执行 get-history 发下历史记录,确认是不是切到远程开发分支了 |
15 a1208340028 OP @Leon406 2 git branch 3 git add . 4 git commit -m "update:调整" 5 git push 6 git branch 7 git branch 8 git checkout 直播间 9 git branch 10 git log 11 git reset --hard bfc86af4e3c3c7a912fdbade12163845279f17b8 12 git reflog 13 git reflog 14 git reflog 15 git reset --hard 0fb4ce0 16 cls 17 git reset --hard 0fb4ce0 18 git reflog 19 git log 20 git reflog |
![]() | 16 Leon406 60 天前 @a1208340028 #15 缺少特性分支之前相关操作,看起来这些操作没有问题, 应该是切换 main 之前进行了什么操作 发现问题了,正好被你多打码的那一行 你从直播分支切换到是临时分支(只有 hash 值),没有分支名, 根本没有在直播分支上修改... |