web-dev-qa-db-ja.com

Gitはgitignoreにないファイルを無視しています

画像ファイルと他のいくつかのファイルを無視しているgitリポジトリがありますが、私の.gitignoreファイルは、config.phpファイル。私が見つけることができないように見えるグローバルな無視ファイルがどこかにありますか?今すぐ追加するファイルを指定する必要があり、この警告が表示されます。

次のパスは、.gitignoreファイルの1つによって無視されます。

私の~/.gitconfigファイルは私のメールアドレスのみです。

93
Ian Hunter

_git check-ignore_

_git check-ignore_ command を使用して、gitignoreファイルをデバッグします(ファイルを除外します)。

例えば:

_$ git check-ignore -v config.php
.gitignore:2:src    config.php
_

上記の出力は、指定された各パス名(行を含む)の一致パターン(存在する場合)に関する詳細です。

したがって、ファイル拡張子は無視されず、ディレクトリ全体が無視される可能性があります。

返される形式は次のとおりです。

_<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>
_

または、次のコマンドを使用して、ユーザーHOMEおよびリポジトリフォルダー内の_.gitignore_を印刷します。

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 [options] pathname…

git check-ignore [オプション] --stdin

158
kenorb

Git構成にcore.excludesfileを含めることができることを知っておくといいかもしれません。core.excludesfileは、無視される追加のパターンを持つファイルへのパスです。 (問題のあるgitリポジトリで)を実行すると、このような構成があるかどうかを確認できます。

git config core.excludesfile

ファイルパスを出力する場合は、そのファイルの内容で詳細を確認してください。

私の場合、古いバージョンの boxen を使用してgitをインストールしましたが、パターン 'Icon?'は無視されました。私の場合、この質問で言及されている、フォルダアイコンに関する警告が表示されました(Icon?がアイコンと一致する理由は、大文字と小文字が区別されないファイルシステムです)。

48
gabrielf

これらを確認してください:

  1. 他の.gitignoreファイルを探したことがあります。多くのファイルがあるためです。

  2. また、REPO/.git/configを調べて、何かあるかどうかを確認します。

  3. リポジトリの除外ローカルのリポジトリごとのルールは、リポジトリの.git/info/excludeファイルに追加できます。これらのルールはリポジトリでコミットされないため、他のユーザーと共有されません。この方法は、エディターが作成したファイルのように、他のユーザーが生成するとは思わない、ローカルで生成されたファイルに使用できます。

30
gahooa

私は同じ問題を抱えていました-このエラーで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は再びディレクトリの追跡を開始しました。

21
Shevaun

私の場合、誤って〜/ .gitignore_globalファイルにワイルドカードが含まれていました。たぶんそこをチェックしますか?

8
Brian

もう1つ試してみてください。プロジェクトディレクトリAの下にネストされた.gitリポジトリを持つディレクトリBがありました(サブモジュールとしてではありません)。 Bにいくつかの変更を加え、それを真のサブモジュールにしたいと考えました。 git Aには独自のリポジトリが含まれていたため、git Aは自動的にBを無視していたと思います( サブモジュールなしのネストされたgitリポジトリ? を参照)。 Bフォルダの名前を変更し、サブモジュールとして再度クローンを作成しようとすると、誤解を招く「.gitignoreによって無視されました」というエラーメッセージが表示されました。解決策は、Bから.gitを削除することでした。

3
Matt Montag

私はあなたとまったく同じ問題を抱えていました。あなたが受け取った唯一の返信にはチェックすべき場所がいくつかリストされていますが、それらのどれも私のために問題を解決しませんでした。ディレクトリツリーの下に隠れている他の.gitignoreファイルはありませんでした。 .git/configには何もありません。 .git/ingore/excludeには何もない

それでも問題が解決しない場合は、 this answer を確認してください。それは私のために問題を解決しました

基本的に、〜/ .gitignoreファイルを確認します。私の名前は〜/ .gitignore_globalと呼ばれていました。いつ作成されたかわかりません([〜#〜] i [〜#〜]は確かに作成できませんでした)私が最初にインストールしたとき、たくさんの異なるgitセットアップがありました。

彼の答えがあなたにも役立つことを願っています!

2
Bukov

Gitからこのエラーメッセージを受け取るもう1つの理由は、前のgitコマンドがクラッシュしてロックファイルを残した状態でgit submodule addコマンドを実行したときです(たとえば、gitコマンドを含むカスタムスクリプトを使用して、クラッシュに気付いていない)。

代わりにgit commitコマンドを実行すると、どの条件も変更されていない場合(git submodule add.gitignoreファイルが原因であると叫び続けます)、another代わりにエラーレポート:

$ 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リリースで修正される可能性があります。)

1
Ger Hobbelt

フォルダーに対する権限があることを確認してください。私はこれに遭遇しましたが、それはフォルダーが私が端末にログインしたユーザーではなくwww-dataユーザーによって所有されていたためです。

1
Conrad Jones

もう1つ:使用中のディレクトリが書き込みまたは実行のためにルートアクセスを必要とする場合は、ルートユーザーであることを確認してください。サブモジュールを追加しようとしたところ、奇妙なエラーが発生し、gitが無視するファイルによってクローン先のパスが無視されているとgitが文句を言い続けました。その後、rootユーザーに変更し、サブモジュールaddを再度実行しましたが、問題はありませんでした。

1
Maharlikans

私の場合、それは問題の原因となっている私のパスのスラッシュでした...

うまくいかない

/srv/bootstrap/

作業

srv/bootstrap/
0
jwogrady

一部のGitクライアント(Mac OS XのAtlassian SourceTreeなど)によって作成される可能性のある~/.gitignoreおよび~/.gitignore_globalも確認してください。

0
viviansteller

.gitignoreファイルがそれ自体を無視していないことを確認してください。よくある間違いは、*ルールを.gitignoreファイルに追加して、現在のフォルダー内のすべてのファイルを無視することです。これに対する解決策は、.gitignoreに例外を追加することです。

*
!.gitignore

これにより、.gitignoreを除く、ディレクトリ内のすべてのファイルが無視されます。

0
jfoliveira