从master拉取最新代码解决冲突时git checkout --theirs报pathspec错误如何解决
解决
git checkout --theirs 时报 pathspec 不匹配的问题 按以下优先级排查处理:
- 先检查命令写法错误:官方示例中的
<filename>是占位符标识,实际执行时必须去掉尖括号,不要把<>也写入命令。如果文件名包含空格、短横线等特殊字符,建议加--做参数分隔,避免git把文件名识别为命令参数,正确写法参考:git checkout --theirs -- src/utils/request.js - 核对文件路径与名称:执行
git status查看所有标记为冲突的文件列表,确认你输入的文件名大小写、相对路径和列表中的完全一致(git对大小写敏感,Utils.js和utils.js会被识别为两个不同文件,存放在子目录的文件要补全完整相对路径) - 处理分支删除文件的冲突场景:如果
git status中该文件显示为deleted by us(你的私有分支删除了该文件,master分支修改了该文件),直接执行git checkout --theirs会找不到文件,此时先执行上述带--的checkout命令,再执行git add 文件名标记冲突解决即可 - 处理已暂存的冲突文件:如果你之前已经执行过
git add标记过该文件的冲突解决,文件会脱离冲突状态,自然不存在theirs版本。可以先执行git reset HEAD 文件名将文件恢复到未暂存的冲突状态,再重新执行git checkout --theirs操作
所有冲突处理完成后,执行git status确认无未解决冲突,再执行git commit即可完成合并。
内容的提问来源于stack exchange,提问作者Abhist
相关产品推荐
相关产品推荐

