执行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

