Git pull拉取develop分支时stash单个文件失败报错解决方案
问题原因
你之前的stash操作没有生效,核心是文件名大小写写错了:
- pull报错提示的冲突文件是
ReleaseScripts/importValidationGLForInterest.sql,文件名首字母i为小写 - 你执行stash时传入的路径是
ReleaseScripts/ImportValidationGLForInterest.sql,文件名首字母I为大写
Git对文件路径的大小写是严格匹配的,所以这条stash命令根本没有暂存到目标文件的本地改动,重新pull自然会报同样的错。
另外你担心重置操作影响公共develop分支属于多余顾虑:所有不涉及push的本地操作,都只会修改你本地仓库的内容,完全不会影响远程仓库上的公共分支,不会对其他协作者造成任何影响。
解决步骤(全程仅操作本地,无远程影响风险)
按顺序执行以下命令即可:
- 直接丢弃目标文件的本地改动(你明确不需要保留这些变更),注意严格使用报错里的正确文件名大小写:
git checkout -- ReleaseScripts/importValidationGLForInterest.sql - 执行以下命令确认本地工作区已干净:
当输出显示git statusnothing to commit, working tree clean时,说明本地改动已经清理完成。 - 重新拉取远程代码即可:
git pull
异常兼容方案
如果执行完checkout命令后仍然提示该文件有改动,一般是本地Git的文件大小写识别配置和仓库不匹配导致的,可以直接执行本地硬重置对齐远程分支,操作无远程风险:
# 先确认当前所在分支是本地develop git branch # 输出里带*号的就是当前分支,确认是develop后执行重置 git reset --hard origin/develop
执行完后本地develop的所有文件、提交记录会完全和远程最新的develop分支保持一致,之后再正常pull、开发即可。
之前你执行错路径生成的无效stash记录如果想清理,可以执行git stash drop删除,不处理也不会影响正常使用。
内容的提问来源于stack exchange,提问作者user7496931
相关产品推荐
相关产品推荐

