270

次の行を追加しました.gitignore

sites/default/settings.php

しかし、入力git statusすると、ファイルがステージングされていないファイルとして表示されます。

どうしたの?他のすべてのパターンはうまく機能します。

4

14 に答える 14

537
于 2010-09-30T18:31:09.493 に答える
145

私はこれに出くわしました、それは古い質問ですが、そのファイルを追跡したいのですが、特定の作業コピーでは追跡しないようにして、実行できるようにします

git update-index --assume-unchanged sites/default/settings.php
于 2011-08-14T00:27:05.900 に答える
63

このコマンドを使用してください

git rm -rf --cached .
git add .

.gitignore ファイルが正しくても機能しないことがあります。Git がファイルを無視する理由は、ファイルがリポジトリに追加されていないためです。以前に無視したいファイルを追加した場合、そのファイルは Git によって追跡され、スキップ マッチング ルールはスキップされます。Git がこれを行うのは、ファイルが既にリポジトリの一部であるためです。

于 2020-03-05T18:08:10.507 に答える
54

.gitignoreは、リポジトリにまだ追加していないファイルのみを無視します。

を実行しgit add .、ファイルがインデックスに追加された場合、.gitignoreは役に立ちません。あなたはgit rm sites/default/settings.phpそれを取り除くために行う必要があるでしょう、そしてそれからそれは無視されます。

于 2010-09-30T19:45:32.990 に答える
23

私も同じ問題を抱えていました。
で定義されたファイルは.gitingore、実行時に追跡されていないファイルとしてリストされますgit status

これは、.gitignoreファイルがUTF-16LEエンコーディングではなくエンコーディングで保存されたためですUTF8

.gitignoreファイルのエンコーディングを変更すると、機能しUTF8ました。

于 2018-01-10T10:54:08.033 に答える
7

git で追跡したいアプリケーション構成ファイルなどのインスタンスがありますが (そのため、.gitignore は機能しません)、ローカル設定用に変更する必要があります。これらのファイルを git で管理したり、変更済みとして表示したりしたくありません。これを行うには、skip-worktree を使用します。

git update-index --skip-worktree path/to/file

ファイルを一覧表示し、スキップされた S で始まる行をチェックすることで、ファイルがスキップされていることを確認できます。

git ls-files -v | grep ^S

将来、git でファイルをローカルで管理したい場合は、次のコマンドを実行するだけです。

 git update-index --no-skip-worktree path/to/file

上記のメスカリトには素晴らしい答えがあり、それが私を正しい道に導きましたが、

git update-index --assume-unchanged file/to/ignore.php

ユーザーはファイルを変更しないことを約束し、作業ツリー ファイルがインデックスに記録されているものと一致すると Git が想定できるようにする git との契約があります。

ただし、ファイルの内容を変更するので、私の場合は --skip-worktree の方が適しています。

Toshiharu Nishina の Web サイトでは、skip-worktree と assume-unchanged の優れた説明が提供されています: Git ローカルで既に管理されているファイルを無視する

于 2019-04-08T02:25:03.450 に答える
2

.gitignore に拡張子がないことを確認してください!! .gitignore.txt にすることはできません。Windows では、ファイルに .gitignore という名前を付けるだけです。そしてそれはうまくいくでしょう。

于 2017-10-12T18:54:33.857 に答える
1

git 1.7.3.1 でこれを試してみたところ、次のような構造が与えられました。

repo/.git/
repo/.gitignore
repo/sites/default/settings.php

ここでrepo、上記の「ルート」(作業ツリーのルートと呼びます)であり、.gitignoreのみを含みsites/default/settings.php、無視が機能します(.gitignoreレポに追加されるかどうかは関係ありません)。これはレポのレイアウトと一致していますか? そうでない場合、何が違うのですか?

于 2010-09-30T19:37:45.840 に答える