3

node_modulesディレクトリを無視しない.gitignoreで問題が発生しています。

これが私の.gitignoreファイルです:

*~
~*
*.log
images/
images/*
images/**/*

.idea/
.idea/*
import_errors/
output/
output/*
node_modules/
node_modules/*
uploads/
downloads/
tmp/

.DS_Store

!.keep
!*/

また、コマンドを実行してgit-indexを更新し、インデックスからフォルダーを削除してみました

$ git rm --cached node_modules
fatal: pathspec 'node_modules' did not match any files
$ git update-index --assume-unchanged node_modules
fatal: Unable to mark file node_modules

通常は、これら2つのコマンドを発行するだけですが、エラーが発生し続けます。最初のコマンドはファイルのステージングを解除し、2番目のコマンドはgitインデックスを更新してファイルの追跡を停止することを想定しています。しかし、何らかの理由でそれは起こらず、他に何が間違っているのかわかりません。

4

1 に答える 1

2

gitignoreファイルをもう一度注意深く調べたところ、答えが見つかりました。私の最後のルールは次のように言っていることがわかりました:

!*/

これは、プロジェクトのルートの下にあるすべてのフォルダーを保持する必要があることを意味します。gitがどのように機能するかを完全に理解する前に、私はずっと前にそれをしました。これは、特定のフォルダーをそこに保持することを目的としていましたが、コンテンツが含まれていない空のフォルダーです。しかし、それが上記のルールの内容であり、このルールが存在する必要はありません。

したがって、その行を削除して実行すると$ git rm --cached node_modules、トリックが実行されます。このコマンドは、ステージング領域からそれを削除してからインデックスを更新するため、2番目のコマンドを実行する必要はありません$ git update-index --assume-unchange

于 2012-09-12T16:31:59.913 に答える