我做了一个git stash pop并以合并冲突告终。我从文件系统中删除了文件并执行了git checkout如下所示的操作,但它认为文件仍未合并。然后我尝试替换文件并git checkout再次执行相同的结果。我尝试用-f标志强制它。任何帮助,将不胜感激!
git stash pop
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
请参阅man git merge( 如何解决冲突 ):
看到冲突后,您可以做两件事: 决定不合并。您需要的唯一清理是将索引文件重置为 HEAD 提交以反转 2. 并清理 2. 和 3. 所做的工作树更改;git-reset –hard 可用于此。 解决冲突。Git 将标记工作树中的冲突。将文件编辑成形状并将它们添加到索引中。使用 git commit 来达成交易。
看到冲突后,您可以做两件事:
决定不合并。您需要的唯一清理是将索引文件重置为 HEAD 提交以反转 2. 并清理 2. 和 3. 所做的工作树更改;git-reset –hard 可用于此。
解决冲突。Git 将标记工作树中的冲突。将文件编辑成形状并将它们添加到索引中。使用 git commit 来达成交易。
在 TRUE MERGE 下(查看 2. 和 3. 指的是什么):
当如何协调更改不明显时,会发生以下情况: HEAD 指针保持不变。 MERGE_HEAD ref 设置为指向另一个分支头。 干净合并的路径在索引文件和工作树中都会更新。 …
当如何协调更改不明显时,会发生以下情况:
HEAD 指针保持不变。
MERGE_HEAD ref 设置为指向另一个分支头。
干净合并的路径在索引文件和工作树中都会更新。
…
所以:git reset --hard如果您想从工作树中删除存储更改,或者git reset如果您只想清理索引并将工作树中的冲突保留为手动合并,请使用。
git reset --hard
git reset
在man git stash ( OPTIONS, pop ) 下,您还可以阅读:
应用状态可能会因冲突而失败;在这种情况下,它不会从存储列表中删除。您需要手动解决冲突,然后手动调用 git stash drop。