Git Merge Conflict - 删除远程文件,更改本地文件

时间:2012-07-25 10:52:26

标签: git git-merge git-merge-conflict

我合并了来自另一个分支的更改,但是我遇到了冲突,因为远程分支上的文件已被删除但本地分支上的更改。

我想删除该文件 - 我尝试了git rm path/to/file,但它说file: needs merge。删除文件并提交合并的最佳方法是什么?

2 个答案:

答案 0 :(得分:27)

尝试使用--force参数:

git rm --force <file>

如果要将文件保留在文件系统中:

git rm --cached <file>

答案 1 :(得分:0)

  

我尝试了git rm path/to/file,但显示文件:needs merge

您将不再看到Git 2.23的错误消息(七年后的Q3 0219)

git rm”解决了用于泄漏内部消息的冲突路径 实际删除路径之前,请先插入“ needs merge”,这会造成混淆。
这已得到纠正。

请参见commit b2b1f61Junio C Hamano (gitster)(2019年7月17日)。
(由Junio C Hamano -- gitster --commit 5e9d978中合并,2019年7月25日)

  

rm:通过移除解决不是值得警告的事件

     

在解决路径冲突以支持将其删除时,请使用   这样做的标准方法是“ git rm”。
  但是,在该操作期间,会向用户显示“ needs merge”消息:

$ git merge side-branch
$ edit conflicted-path-1
$ git add conflicted-path-1
$ git rm conflicted-path-2
conflicted-path-2: needs merge
rm 'conflicted-path-2'
     

已成功执行“ git rm”的删除操作,但未启动用户   可能会造成混淆:
  “ needs merge?所以我需要解决冲突   才能将其删除?”

     

消息来自称为“ update-index --refresh”的消息   在内部确保“ git rm”知道哪些路径是干净的   哪些路径是脏的,以防止删除已修改的路径   相对于没有“ -f”选项的索引。

     

我们最终还是不压制渗透到UI表面的消息。

     

使用与“ git commit”,“ git describe”等相同的机制   压制消息。