从git stash中删除已跟踪的文件,然后执行git stash pop

3

我执行了git stash命令。然后尝试使用git stash pop,但是出现了以下错误:

错误:您对以下文件的本地更改将被合并覆盖: [proj].xcodeproj/project.xcworkspace/xcuserdata/[user].xcuserdatad/UserInterfaceState.xcuserstate Leaflet-[proj]/Leaflet.xcodeproj/xcuserdata/[user].xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist 请在合并之前提交您的更改或将其存储。操作已中止。

我提交了我的更改。我再次尝试使用git stash pop,但没有成功。然后我使用git rm --cached命令删除了这些文件,并提交了这些删除操作。现在git stash pop显示错误:refusing to lose untracked file

git status:

您的分支领先于 'origin/temp' 2 次提交。 (使用 "git push" 将您的本地提交推送到远程)

未合并的路径: (使用 "git reset HEAD ..." 取消暂存) (使用 "git add/rm ..." 标记解决方案)

我们已经删除:
[proj].xcodeproj/project.xcworkspace/xcuserdata/[user].xcuserdatad/UserInterfaceState.xcuserstate 我们已经删除:
[proj]/xcuserdata/[user].xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

1个回答

2
如果您在存储中删除了文件,则无法合并存储的更改,因为它无法合并不存在的文件。当您说您之前提交了更改时,听起来像您可能已经执行了 git add 但没有 git commit ?执行 git commit 后运行 git stash pop 应该可以工作。如果您确实这样做了,但它没有工作,那么我不确定问题是什么,因为您在那个时候没有提供足够的信息。
现在您有几个选择。最安全的可能是执行 git stash branch <branchname> 。这将检出您的最后一个存储到一个新分支上。从那里,您可以根据需要进行编辑,将更改提交到分支,然后将其合并回您正在使用的分支。
如果您只想放弃最新的存储,则可以使用 git stash drop
如果您想放弃所有存储: git stash clear

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接