20

我最近做了 a git stash,然后在分支上做了一些工作并提交了它,并在尝试做 a 时遇到了这些错误git stash apply

CONFLICT (delete/modify): app/controllers/orders_controller.rb deleted in Updated upstream and modified in Stashed changes. Version Stashed changes of app/controllers/orders_controller.rb left in tree.
CONFLICT (content): Merge conflict in app/models/product.rb

git status显示以下内容:

 $ git status
# On branch develop
# Your branch is ahead of 'origin/develop' by 16 commits.
# Unmerged paths: 
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   deleted by us:      app/controllers/orders_controller.rb
#   both modified:      app/models/product.rb

标记为“删除/修改”的文件是我添加的一个新文件,在stash.
我想回到我之前的状态git stash——有未提交的本地更改。你能建议如何做到这一点吗?

谢谢。

4

4 回答 4

14

这对我有用。

做一个-

git mergetool

然后你会被要求选择修改或删除的文件或中止,然后再做一次 -

git mergetool

这将解决合并冲突,您可以隐藏您的更改。

于 2019-02-21T11:17:46.380 回答
11

您正在将存储弹出到不同的状态;有一个额外提交的状态。更糟糕的是,正如你所知,提交引入了合并冲突。

你有两个选择:

  1. 将该存储弹出到最新提交并解决冲突
  2. 将存储弹出到先前的提交中。

听起来#2 是你想要做的。采用:

    git stash branch new_branch [<stash>]  # <stash> will be the last one if not provided.
于 2012-04-07T16:34:11.860 回答
2

在我的情况下git add <file>帮助:

这是示例https://gist.github.com/SgtPooki/10efd02b066a8704b776

于 2018-12-07T11:10:02.597 回答
0

你需要解决冲突!由于您更新了最新的存储库,因此在最新的存储库中修改了 project.rb 和 orders_controller.rb 这两个文件。同时,你本地的change(stash)也修改了这两个文件,当你应用它们时,会有冲突。

您需要解决冲突才能应用本地更改。

对于第一个文件,orders_controller.rb 最新的 repo 被删除了,当你推送你以后的提交时,你想保留它还是不保留它?

对于第二个文件 project.rb,您需要解决文件中的冲突。

于 2012-04-07T16:40:29.253 回答