You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行git fetch后本地用git log看不到最新提交的问题求助

问题描述

我的Bitbucket远程仓库最新提交如下:

Commit  Message     Commit date
d9578f5f628 Version ***NO_CI***     3 days ago  
3f3aebefcd0 Added files for git build       3 days ago  
dab48971291 Version 22.1.0.0113 ***NO_CI***     6 days ago  
8b63be0cb15 Version 22.1.0.0112 ***NO_CI***     6 days ago  

但本地仓库执行git log --all --oneline -5看不到最新的2条提交:

> git log --all --oneline -5
5cc97e6108 (HEAD -> default) Version 22.1.0.0114 ***NO_CI***
dab4897129 (origin/default, origin/HEAD) Version 22.1.0.0113 ***NO_CI***
8b63be0cb1 Version 22.1.0.0112 ***NO_CI***
396e33eab1 Version 22.1.0.0111 ***NO_CI***
af86c6a0d9 Version 22.1.0.0110 ***NO_CI***

我已经执行过git fetch且显示成功,但没效果:

> git fetch ssh://[url masked]
From ssh://[url masked]
 * branch                  HEAD       -> FETCH_HEAD

之前可能执行过错误的git reset操作,我只想查看仓库最新提交,不想更新工作副本。

解决方法
  • 直接查看远程最新提交(无需更新本地分支)
    你执行的git fetch已经把远程HEAD的提交拉到本地的FETCH_HEAD里了,直接查看这个引用的日志就能看到最新提交:

    git log FETCH_HEAD --oneline -3
    

    这条命令会显示远程最新的3条提交,应该包含你在Bitbucket看到的那两个新提交。

  • 更新远程跟踪分支(让origin/default同步远程)
    如果想让本地的origin/default(远程default分支的本地镜像)跟上远程最新状态,执行:

    git update-ref refs/remotes/origin/default FETCH_HEAD
    

    这个操作只修改本地的远程跟踪分支,不会影响你的工作副本和本地default分支,之后再执行git log --all --oneline -5就能看到最新提交了。

  • 确保fetch全部分支
    你之前的git fetch只拉取了远程HEAD,没有同步所有远程分支。下次可以直接用:

    git fetch origin
    

    这条命令会同步远程仓库所有分支的本地跟踪版本,之后origin/default就会自动更新到远程最新。

  • 检查远程分支对应关系
    如果上面的方法没用,先确认远程的最新提交在哪个分支,执行:

    git ls-remote ssh://[url masked]
    

    对比输出里的提交哈希,看看d9578f5f628和3f3aebefcd0属于哪个远程分支,比如如果是refs/heads/other-branch,那可以用git log origin/other-branch查看该分支的提交。

内容的提问来源于stack exchange,提问作者Scrontch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 12:35:30