別のブランチからの変更をマージしましたが、リモートブランチでファイルが削除されたが、ローカルブランチで変更があったため、競合が発生しています。
ファイルを削除したいのですが、試しgit rm path/to/file
ましたが、と表示されますfile: needs merge
。ファイルを削除してマージをコミットする最良の方法は何ですか?
別のブランチからの変更をマージしましたが、リモートブランチでファイルが削除されたが、ローカルブランチで変更があったため、競合が発生しています。
ファイルを削除したいのですが、試しgit rm path/to/file
ましたが、と表示されますfile: needs merge
。ファイルを削除してマージをコミットする最良の方法は何ですか?
パラメータを使用してみて--force
ください:
git rm --force <file>
ファイルをファイルシステムに保持したい場合:
git rm --cached <file>
私は試し
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 、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
、メッセージをスケルチします。