我做了一次git stash pop
,结果出现了合并冲突。我从文件系统中删除了这些文件,并执行了如下所示的git checkout
,但它认为这些文件仍未合并。然后,我尝试替换这些文件,并一次又一次地执行git checkout
,结果相同。我尝试使用-f
标志来强制它。任何帮助都将不胜感激!
chirag-patels-macbook-pro:haloror patelc75$ git status
app/views/layouts/_choose_patient.html.erb: needs merge
app/views/layouts/_links.html.erb: needs merge
# On branch prod-temp
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: db/schema.rb
#
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# unmerged: app/views/layouts/_choose_patient.html.erb
# unmerged: app/views/layouts/_links.html.erb
chirag-patels-macbook-pro:haloror patelc75$ git checkout app/views/layouts/_choose_patient.html.erb
error: path 'app/views/layouts/_choose_patient.html.erb' is unmerged
chirag-patels-macbook-pro:haloror patelc75$ git checkout -f app/views/layouts/_choose_patient.html.erb
warning: path 'app/views/layouts/_choose_patient.html.erb' is unmerged
发布于 2010-05-16 00:56:24
请参阅man git merge (如何解决冲突):
在看到冲突后,您可以做两件事:
在TRUE MERGE下(看看2.和3.指的是什么):
如果不清楚如何协调更改,则会发生以下情况:
在索引文件和工作树中都会更新完全合并的
因此:如果您想从工作树中删除隐藏的更改,请使用git reset --hard
;如果您只想清理索引并将工作树中的冲突保留为手动合并,请使用git reset
。
在man git stash (OPTIONS,pop)下,您还可以阅读:
应用状态可能会因冲突而失败;在这种情况下,不会将其从存储列表中删除。您需要手动解决冲突,然后手动调用git stash drop。
发布于 2012-05-05 01:10:32
我也遇到过类似的事情。我还不想暂存这些文件,所以我用git add
添加了它们,然后就执行了git reset
。这基本上只是添加并取消了我的更改,但清除了未合并的路径。
发布于 2015-10-14 01:26:12
如果像我一样,您通常希望用隐藏文件的内容覆盖工作目录的内容,并且仍然存在冲突,那么您需要的是使用git checkout --theirs -- .
从根目录解决冲突。
在此之后,您可以使用git reset
将所有从索引到工作目录的更改带到工作目录中,因为显然在发生冲突的情况下,对非冲突文件的更改将保留在索引中。
您可能还想在之后运行git stash drop [<stash name>]
,以清除存储,因为git stash pop
不会在发生冲突的情况下删除它。
https://stackoverflow.com/questions/2840816
复制相似问题