办公室推送的含未合并关联Issue的提交在家拉取不到,如何解决?
以下是排查和解决的具体步骤:
先确认本地分支与远程分支的追踪状态,执行命令:
git branch -vv
查看输出里mybranch对应的远程分支是否为origin/mybranch,以及两者的提交哈希是否一致。如果远程分支哈希是最新的但本地不一致,说明本地分支未同步。直接查看远程分支的提交记录,确认那10次提交是否存在于远程:
git log origin/mybranch --oneline
如果能看到包含close #10这类信息的提交,说明远程分支确实有这些记录;如果看不到,大概率是工作地点的推送操作出错(比如推错了分支或远程仓库)。若远程分支存在目标提交,先拉取远程最新数据:
git fetch origin mybranch
这一步会把远程mybranch的最新提交同步到本地的origin/mybranch引用中。对比本地分支和远程分支的差异:
git diff mybranch origin/mybranch
如果能看到那10次提交的内容差异,说明本地分支确实落后于远程。合并远程提交到本地分支:
执行git merge origin/mybranch,无代码冲突的话可直接完成合并;有冲突的话,解决冲突后提交即可。
要是想直接将本地分支覆盖为远程的状态(注意:会丢失本地未提交的修改,谨慎使用),可以执行:git reset --hard origin/mybranch最后检查本地的remote配置是否正确:
git remote -v
确保家里环境的origin地址和工作地点使用的是同一个远程仓库,避免因推送至不同仓库导致拉取不到内容。
内容的提问来源于stack exchange,提问作者aref razavi

