2012-04-07 37 views
15

我最近做了一个git stash,然后做在树枝上的一些工作,并试图做一个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之前的状态 - 没有提交本地更改。你能建议如何做到这一点?

谢谢。

回答

8

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

你有两个选择:

  1. 流行的是藏匿在最新提交和解决冲突
  2. 弹出藏匿到之前提交。

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

git stash branch new_branch [<stash>] # <stash> will be the last one if not provided. 
+0

谢谢。我只是意识到我做了'藏'适用于错误的分支。有没有办法在这个分支上取消“隐藏应用”? – stupakov 2012-04-07 17:19:06

+0

在“隐藏应用”之前清理了错误的分支吗?而且,'是否应用'或'堆叠流行'? – GoZoner 2012-04-07 17:36:52

+0

它很干净,我没有'申请' – stupakov 2012-04-07 18:04:30

0

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

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

对于第一个文件,orders_controller.rb 最新的回购被删除,当您推迟以后的提交时,是否要保留它?

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