3

私はこれを何百回もやりました。ディレクトリからファイルを削除してから、問題ないように見える git status を実行しました。

# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    themes/custom/gitb/templates/views-view-field--field-overall-rating.tpl.php 
#

次に、 git rm themes/custom/gitb/templates/views-view-field--field-overall-rating.tpl.php を実行すると、エラー メッセージが表示されます

error: pathspec 'themes/custom/gitb/templates/views-view-field--field-overall-rating.tpl.php' did not match any file(s) known to git.

git status はファイルについて「認識」していますが、 git rm はそれを認識しておらず、削除しません。立ち往生しています。どうすればこれを解決できますか?

4

3 に答える 3

9

迅速で汚い解決策は、ファイルを追加して使用することです

git rm themes/custom/gitb/templates/views-view-field--field-overall-rating.tpl.php

それを削除します。

git rmファイルシステムからもファイルを削除するので、手動でファイルを削除する必要はありません(通常はそうすべきではありません)。

編集

これを行うためのよりクリーンな方法は、gitに次を使用して欠落しているファイルに気付かせることです。

git add -u

また

git commit -a

のドキュメントから、オプションgit-addの説明は次のとおりです-u

作業ツリーではなく、インデックス内ですでに追跡されているファイルとのみ一致します。つまり、新しいファイルをステージングすることはありませんが、追跡されたファイルの変更された新しいコンテンツをステージングし、作業ツリー内の対応するファイルが削除されている場合は、インデックスからファイルを削除します。

-aこれがオプションの1つですgit-commit

変更および削除されたファイルを自動的にステージングするようにコマンドに指示しますが、gitに通知していない新しいファイルは影響を受けません。

于 2013-01-21T17:45:15.140 に答える
1

git rmのマニュアルページでは、作業ツリーに存在しなくなったファイルを削除するいくつかの方法について説明しています。

git rm将来的には、ファイルを個別に削除するよりも、でファイルを削除する方が簡単です。

于 2013-01-21T17:44:57.970 に答える