由于冲突而无法“ git stash pop”


19

我有一个本地git存储库,并且有几个修改过的文件。然后我需要快速修复某些问题,所以我

  • 隐藏了我的更改(git隐藏)
  • 编辑文件(vi文件)
  • 已提交(git commit)
  • 弹出藏匿(git stash pop)

这导致了冲突。

# On branch master
$ git stash pop
Auto-merging page/search.php
CONFLICT (content): Merge conflict in page/search.php
$ git status
# On branch master
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      page/search.php

如果我尝试清理更改并重新应用存储,则会发生相同的事情(冲突)。我不太在乎page / search.php,但是我想从存储中获取其他文件。

有没有一种方法可以将隐藏文件转换为补丁程序,或只是简单地获取隐藏文件时的文件?

Answers:


20

该存储已被应用于其他文件。只是page/search.php您必须手动合并。之后,只需运行git reset即可取消更改并继续进行黑客攻击-或git add ...提交。


是。究竟。用-p恢复补丁后,我发现其他文件已经更新。
romaninsh 2012年

3
很不错的,git stash pop,解决您的矛盾,然后git add xgit reset把它弄出来分期,谢谢!
Quang 2012年

@Quang应该是的stash pop --continue别名reset。:)
Kaz

12

解决:

git stash show -p

那挽救了我的一天,=)
anatoly techtonik

是否-p在这里做什么?
Joost

2
显示?-p?这是做什么的?“展示”如何与解决冲突相关?
阿诺德·罗阿

2
此命令显示存储区中所做的更改,允许您手动合并
Desmond Weindorf

1
git stash show -p | git apply && git stash dropcoderwall.com/p/anxp0g/force-a-git-stash-pop找到了,我试图在运行它之前验证它是否可以工作。:-)
PatS '18

7

git stash pop命令完成后,您必须git stash drop手动解决冲突,然后按照man git-stash建议手动进行操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.