23

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

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

4

2 回答 2

29

尝试使用--force参数:

git rm --force <file>

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

git rm --cached <file>
于 2012-07-25T10:55:00.890 回答
7

我试过git rm path/to/file了,但它说文件:needs merge

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

" "在实际删除路径之前git rm解决用于泄漏内部消息的冲突路径" ",这令人困惑。 这已得到纠正。needs merge

请参阅Junio C Hamano ( ) 的提交 b2b1f61(2019 年 7 月 17 日(由Junio C Hamano 合并 -- --提交 5e9d978中,2019 年 7 月 25 日)gitster
gitster

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”等相同的机制来压制消息。

于 2019-07-27T20:54:37.453 回答