在使用微信开发者工具中的版本管理过程中,出现如下问题:
我在本地修改好文件之后,在版本管理中 暂存→提交→推送(push) 后,提示:
Push failed Error:cannot push because a reference that you are trying to update on the remote contains commits that are not present
目前一切正常,报错是因为我在编辑本地文件的过程中,另一个人已经向远程仓库里提交了更新的commit。
然后,我选择拉取(pull),将远程仓库的最新状态合并到我的仓库,此时版本管理的工作区 识别到了 我所编辑的文件 与 该文件的最新版本 有冲突(如下图)
随后,我在编辑器里手动解决冲突(解决方式:点击Accept Both Changes,如下图)
随后保存文件,在版本管理中 暂存该文件→提交→推送(push),推送失败,报错如下图:
Push failed
Error:cannot push non-fastforwardable reference You may try pull before you push.
提示我在 push(推送) 之前先 pull(拉取),可是根据我上述的操作得知我在本次push之前已经先pull过了。
按照报错提示,我再此进行拉取(pull),随后工作区再次识别到 我所编辑的文件 与 该文件的最新版本 有冲突,但此时 我所编辑的文件 内容为我手动解决冲突后的内容(即上述操作中点击“Accept Both Changes”后的内容)。
解决完本次冲突之后,再按流程push,又提示和之前一样的报错:
Push failed
Error:cannot push non-fastforwardable reference You may try pull before you push.
按提示再次拉取(pull),工作区再次提示文件冲突,手动解决冲突后再次按流程推送(push),便再次出现如上报错,如此循环。
以上是全部bug描述部分。
除了发帖时最新稳定版 Stable Build (1.05.2204250 | 1.06.2204250)
我还尝试了最新开发版 Nightly Build (1.06.2205122)
依旧有此问题。
同样的操作流程,在VSCode上就不会如此循环无尽。
我已经尽全力把出错的过程给描述清晰了,请不要用一句“先拉取再推送”回复我。
在微信开放社区搜索此问题的时候,我注意到早在2018,2019年就有用户反馈,(见https://developers.weixin.qq.com/community/develop/doc/0004a8b04acd3092e8c79ab4a51400?_at=1591775772989 问题以及评论区),希望能够重视此问题。
当然,如果是因为我的操作有误导致的报错,我先在此道歉,也希望您能不吝赐教指出我的操作问题。
你好楼主,今日我遇到该问题之后发现是微信小程序的问题,就搜索git的指令,发现:git push -u origin mfy -f //其中mfy是你的分支名,这个命令可用。原文:https://my.oschina.net/u/2391658/blog/744984
前段时间也碰到这个问题。最开始和楼主操作一样,发现push不上去。
解决方法:
先查看一下本地head分支的提交记录是不是如下图这种浅灰色,如果在最新一次commit记录前有背景颜色不是浅灰色的提交记录,就容易出现楼主的那种情况。
如果出现最新一次commit记录前有背景颜色不是浅灰色的提交记录,则回到第一条背景颜色不是浅灰色的提交记录,右键重置为那个版本,记得一定一定一定要勾选保存工作区内容。回到该版本后,pull远程分支合并到当前head分支,再将工作区的内容commit一次,commit完后再push,就可以成功更新远程分支。
同遇到,楼上TD的方法可解决问题
遇到相同的问题,请问解决了吗?