git 切换分支问题

2025 年 8 月 12 日
 wanmi

git reflog 的全部日志 切换分支,少了 3 个版本号,有大佬解疑吗,会是 orgigin 、HEAD 这些问题吗

3828 次点击
所在节点    git
16 条回复
wanmi
2025 年 8 月 12 日
执行 reset: moving to bfc86af4e3c3c7a912fdbade12163845279f17b8 这个命令,是我 git log 发现少了 3 个提交的版本号,然后我以为是有什么原因,然后就执行 git log ,然后 reset 到我最新的提交版本号,切回分支时就没有这个 3 个版本号
NessajCN
2025 年 8 月 12 日
bfc86af 这个是 origin/直 xx, 也就是远程仓库的 commit
你提交的那俩都只在本地 commit 了,origin 那边没同步
所以你切回 origin/直 xx 还是 bfc86af
wanmi
2025 年 8 月 12 日
wanmi
2025 年 8 月 12 日
@NessajCN 但是都是本地,我本地回到分支,为什么是回到了我 origin 的版本,而不是我本地已 commit 的版本号
wanmi
2025 年 8 月 12 日
https://raw.githubusercontent.com/1208340028/mall/refs/heads/main/952988-acaxca515as.png 这个可以看到我执行 reset ,执行的 git log 版本,确实是 origin 那边的版本,而不是我本地已提交的 3 个版本号
NessajCN
2025 年 8 月 12 日
@a1208340028
po 一下你的 git branch 输出
GeruzoniAnsasu
2025 年 8 月 12 日


checkout 到这两个 hash 看看呗
wanmi
2025 年 8 月 12 日
大概操作流程:
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
NessajCN
2025 年 8 月 12 日
@a1208340028 反正从 log 来看你 ckeckout 的就是 origin/直 xx 而不是本地直 xx 。
我也不知道你具体咋 checkout 的,猜一下的话是不是本地直 xx 跟远程直 xx 名字有出入…
unused
2025 年 8 月 12 日
把每一步的命令贴出来
skiy
2025 年 8 月 12 日
我看你不是切到本地的直分支,而是远程分支。建议你 history 看看操作记录。WIN 我不知道怎么查操作记录了。你是不是 git switch origin/直 XX 了?
unused
2025 年 8 月 12 日
reflog 没打码的第一步就错了,“moving from 直 to bfc86” 说明你从分支 checkout 到了这个 commit. You are in 'detached HEAD' state.
Leon406
2025 年 8 月 12 日
origin/直, 直 远程和本地分不清楚

代码开发了,tmp 保存在本地分支 直,
切换分支到 main,开发完又切换到 origin/直
Leon406
2025 年 8 月 12 日
如果命令行没有退出,执行 get-history 发下历史记录,确认是不是切到远程开发分支了
wanmi
2025 年 8 月 12 日
@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
Leon406
2025 年 8 月 12 日
@a1208340028 #15 缺少特性分支之前相关操作,看起来这些操作没有问题,
应该是切换 main 之前进行了什么操作


发现问题了,正好被你多打码的那一行
你从直播分支切换到是临时分支(只有 hash 值),没有分支名,
根本没有在直播分支上修改...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1151882

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX