我在我的特定分支上做了一些更改-但被通知有一些更改需要从master中挑选。
- 于是我切换到master:
git checkout master
git pull
git checkout my_branch
- 然后我合并了:
git merge master
- 然后我试着打开我的储藏室
git stash pop
但失败,并显示以下消息:
Auto-merging /file1
CONFLICT (content): Merge conflict in file1
Auto-merging /file2
The stash entry is kept in case you need it again.
1.因此,我通过编辑器中的编辑合并了文件- /file 1。添加/file 1并提交
- 然后我试着弹出stash:
git stash pop
但它再次失败,并显示以下消息:
Auto-merging /file1
CONFLICT (content): Merge conflict in file1
Auto-merging /file2
The stash entry is kept in case you need it again.
不管我提交了多少次/file 1-我都被困在同一个循环中。
我也试着把我的收藏分了一下:
- 解决合并
- 添加/提交所有已解析的文件
- 尝试分支藏匿-不起作用:
c:>git stash branch stash_branch
error: you need to resolve your current index first
file1: needs merge
- 恢复头部也没有出现成功
C:>git revert HEAD
error: Reverting is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: revert failed
我非常想要回我的藏匿-有什么办法或者我已经完全失去了我的藏匿?
我曾尝试重置合并和其他解决方案的建议,但无济于事。好像我把所有的存货都丢了。
2条答案
按热度按时间tv6aics11#
看起来你唯一做错的事就是一直想把剩下的东西重新涂上。记住,
git stash pop
意味着:* 运行git stash apply
。如果成功,运行git stash drop
。*你的
git stash apply
是失败的,而不是成功的。所以git stash drop
永远不会发生,这完全符合预期。当合并失败时--不管你是如何调用合并的--你都要负责清理混乱。Git已经为你做了它能做的一切。其他的一切都取决于你。这就是你的第五步:
因此,我通过编辑器中的编辑合并了文件- /file 1。添加/file 1并提交
这就完成了
git stash apply
(“added file 1“1部分)。你做了一个新的提交,这也没问题,但请注意,通过省略git add file2
,你 * 没有 * 提交git stash apply
自己成功合并的更新后的file 2。但随后您返回到步骤6,再次尝试重新应用隐藏。如果您对保存了
git stash
步骤中的所有内容感到满意,那么您需要做的就是使用git stash drop
* 删除 * stash。如果你不满意所有的东西都被保存了,那么就保留这个stash,或者使用
git stash branch
把它变成自己的独立分支。我将其改为“file 1”,而不是“/file 1”,因为Git中的文件路径几乎不应该以
/
开头。zqdjd7g92#
最后,我提交了新的更改,然后弹出隐藏的更改,然后解决冲突!