回答:
git check-ignore
git check-ignore
コマンドを使用してgitignoreファイルをデバッグします(ファイルを除外します)。
例えば:
$ git check-ignore -v config.php
.gitignore:2:src config.php
上記の出力は、指定された各パス名(行を含む)の一致パターン(存在する場合)に関する詳細です。
したがって、おそらくファイル拡張子は無視されず、ディレクトリ全体が無視されます。
返される形式は次のとおりです。
<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>
または、次のコマンドを使用して.gitignore
、ユーザーのHOMEおよびリポジトリフォルダーを印刷します。
cat ~/.gitignore "$(git rev-parse --show-toplevel)"/.gitignore "$(git rev-parse --show-toplevel)"/.git/info/exclude
またはgit add -f
、無視されたファイルを追加できるようにするを使用します。
詳細についてはman gitignore
、man git-check-ignore
を参照してください。
git check-ignore [オプション]パス名…
git check-ignore [オプション] --stdin
git構成に、無視される追加のパターンを含むファイルへのパスであるcore.excludesfileが含まれている可能性があることを知っておくとよいでしょう。(問題のあるgit repoで)を実行することで、そのような構成があるかどうかを確認できます。
git config core.excludesfile
ファイルパスを出力する場合は、詳細についてそのファイルの内容を確認してください。
私の場合、パターン「Icon?」を無視した古いバージョンのboxenを介してgitをインストールしました 私の場合、この質問で述べたフォルダアイコンの警告が表示されました(大文字と小文字を区別しないファイルシステムを使用しているため、Icon?がアイコンと一致します)。
Icon?
ことを無視されていました。
これらをチェックしてください:
他の.gitignoreファイルが多数ある可能性があるため、探しましたか。
また、REPO / .git / configを見て、そこに何かあるかどうかを確認します。
リポジトリの除外ローカルのリポジトリごとのルールをリポジトリの.git / info / excludeファイルに追加できます。これらのルールはリポジトリでコミットされないため、他のユーザーと共有されません。このメソッドは、エディターによって作成されたファイルのように、他のユーザーが生成することを期待しないローカルで生成されたファイルに使用できます。
私は同じ問題を抱えていました-gitによってこのエラーでディレクトリが無視されていました:
➭ git add app/views/admin/tags/
The following paths are ignored by one of your .gitignore files:
app/views/admin/tags
Use -f if you really want to add them.
fatal: no files added
私は最終的に私の問題が私の行であることがわかりました~/.gitignore_global
:
TAGS
パスと一致していましたapp/views/admin/tags
。グローバルgitignoreファイルにスラッシュを追加して修正しました
/TAGS
そしてgitが再び私のディレクトリの追跡を開始しました。
help
無視されていたディレクトリがありました。幸い、私はあなたの答えをすぐに見つけました。
私にとって、〜/ .gitignore_globalファイルに誤ってワイルドカードが含まれていました。たぶんそこをチェック?
もう1つ試してみると.git
、プロジェクトディレクトリAの下に独自のリポジトリがネストされたディレクトリB がありました(サブモジュールとしてではありません)。私はBにいくつかの変更を加え、それを正真正銘のサブモジュールにしたいと考えました。git Aは独自のリポジトリを含んでいたため、git Aは自動的にBを無視していたと思います(サブモジュールのないネストされたgitリポジトリを参照してください?)。私はBフォルダーの名前を変更し、それをサブモジュールとして再度複製しようとすると、誤解を招く「ignored by .gitignore」エラーメッセージが表示されました。解決策は.git
、B から削除する ことでした。
私はあなたとまったく同じ問題を抱えていました。あなたが受け取った唯一の返信は確認するためのいくつかの場所をリストしましたが、それらのどれも私のために問題を解決しませんでした、そしてあなたのコメントから私もあなたのために考えていません。ディレクトリツリーの下に隠れている他の.gitignoreファイルはありませんでした。.git / configには何もありません。.git / ingore / excludeには何もありません
それでも問題が解決しない場合は、この回答を確認してください。それは私のために問題を解決しました
基本的に、〜/ .gitignoreファイルを確認します。私の名前は〜/ .gitignore_globalでした。いつ作成されたかわかりません(私は確かにそれをしなかった)が、私が最初にインストールしたときにそれらの一つはそこに入れている必要がありますので、私は、別のgitの設定のトンを試してみました。
彼の答えがあなたにも役立つことを願っています!
gitからこのエラーメッセージを受け取るもう1つの理由はgit submodule add
、前のgitコマンドがクラッシュしてロックファイルを残したままコマンドを実行したときです(これは、たとえば、gitコマンドを含むカスタムスクリプトを使用していて、クラッシュ)。
git commit
代わりにコマンドを実行すると、どの条件も変更されていない間(ファイルのせいgit submodule add
だと叫ぶことになります.gitignore
)、代わりに別のエラーレポートが表示されます。
$ git commit -a
fatal: Unable to create '..../.git/index.lock': File exists.
If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.
そして実際にロックファイルを削除します:
rm .git/index.lock
問題を解決します。(これはgitバージョン2.1.0.9736で発生します。将来のgitリリースで修正される可能性があります。)
フォルダへのアクセス権があることを確認してください。私はこれに遭遇しましたが、それはフォルダが、ターミナルにログインしたユーザーではなく、www-dataユーザーによって所有されていたためです。
.gitignore
ファイルがそれ自体を無視していないことを確認してください。よくある間違いは、現在のフォルダー内のすべて*
の.gitignore
ファイルを無視するルールをファイルに追加することです。これに対する解決策は、に例外を追加すること.gitignore
です:
*
!.gitignore
この方法では、ディレクトリ内のすべてのファイルが無視され.gitignore
ます。