删除git stash追踪文件后执行git stash pop遇合并覆盖错误求助
解决Git Stash Pop时的Xcode配置文件冲突问题
嘿,我之前处理Xcode项目时也碰到过一模一样的坑!这些xcuserstate和xcbkptlist文件都是Xcode生成的本地用户配置文件(比如界面状态、断点列表),它们本来就不该被Git追踪,冲突往往就是因为这个原因。给你几个一步步解决的方案:
方案1:先暂存当前状态,再应用目标stash
如果你的本地还有未处理的改动(哪怕你以为提交完了),可以先把当前状态临时暂存,再处理之前的stash:
- 先把当前改动存成一个临时stash:
git stash push -m "temp_local_changes" - 查看所有stash列表,找到你最初想要pop的那个(比如
stash@{1},因为刚存的是stash@{0}):git stash list - 应用目标stash:
git stash apply stash@{1} - 如果有冲突,手动解决后,记得把临时stash删掉:
git stash drop stash@{0}
方案2:把Xcode本地文件加入.gitignore(从根源解决)
这些Xcode用户文件根本不需要被版本控制,所以最好直接把它们排除在Git追踪外:
- 先移除Git对这些文件的追踪(不会删除本地文件):
git rm --cached [proj].xcodeproj/project.xcworkspace/xcuserdata/[user].xcuserdatad/UserInterfaceState.xcuserstate git rm --cached Leaflet-[proj]/Leaflet.xcodeproj/xcuserdata/[user].xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist - 编辑你的
.gitignore文件,添加以下规则,以后Xcode生成的这类文件就不会被Git盯上了:# Xcode user local files *.xcuserstate *.xcbkptlist xcuserdata/ xcdebugger/ - 提交
.gitignore的修改:git add .gitignore git commit -m "Ignore Xcode local user configuration files" - 现在再执行
git stash pop,应该就不会再出现冲突提示了。
方案3:恢复误删的文件(如果你之前删了部分文件)
如果你之前删除了某些文件导致状态混乱,可以先恢复这些文件:
git checkout -- [被删文件的路径]
恢复后再按照上面的方案1或2处理。
内容的提问来源于stack exchange,提问作者maddie
相关产品推荐
相关产品推荐

