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、7年後)ではそのエラーメッセージは表示されなくなります

" git rm"内部メッセージをリークするために使用された競合するパスを解決する" needs merge"実際にパスを削除する前に、混乱していました。
これは修正されました。

Junio C Hamano()によるcommit b2b1f61(2019年7月17日)を参照してください。( Junio C Hamanoによってマージされました---コミット5e9d978 、20197月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 に答える