我最近做了一个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
之前的状态 - 有未提交的本地更改。你能建议如何实现这个目标吗?
感谢。
答案 0 :(得分:8)
你正在把藏匿物弹到另一个州;有一个额外提交的州。更糟糕的是,正如您所知,提交引入了合并冲突。
您有两种选择:
听起来像#2就是你想要做的。使用:
git stash branch new_branch [<stash>] # <stash> will be the last one if not provided.
答案 1 :(得分:1)
这对我有用。
做-
git mergetool
然后将要求您选择已修改或删除的文件或中止操作,然后再做一次-
git mergetool
这将解决合并冲突,您可以隐藏弹出的更改。
答案 2 :(得分:0)
在我看来,git add <file>
帮助:
答案 3 :(得分:-1)
您需要解决冲突! 由于您已更新最新的存储库,因此已更改了两个文件,已在最新的存储库中修改了project.rb和orders_controller.rb。同时,您的本地更改(存储)也修改了这两个文件,当您应用它们时,会有冲突。
您需要解决冲突才能应用本地更改。
对于第一个文件,orders_controller.rb 删除最新的仓库,当你推迟以后的提交时,是否要保留它?
对于第二个文件project.rb 你需要解决文件中的冲突。