0

次のディレクトリ構造があります

ここに画像の説明を入力

ここに.gitignoreの内容があります

conf.php

問題は、コンテンツ conf.php を変更して何かをコミットしようとすると、GIT がconf.php変更されたファイルとして再度検出することです。実際、それは無視されなければなりません。
私はそれを一度コミットしました。これからは無視したいです。私は何が欠けていますか?

アップデート

私は次のことを試しました:

  1. gitignore に conf.php を追加

  2. キャッシュから削除しましたgit rm --cached conf.php.

    しかし、今、プロジェクトを再スキャンすると、削除されたものとしてステージングconf.phpされます。

ここに画像の説明を入力

それは私が欲しいものではありません。

リモートリポジトリに保持し、ローカルリポジトリの将来の (今からの) 変更を無視したい。

4

3 に答える 3

6

Git は追跡されたファイルを無視しません

Git は、既にコミットされたファイルへの変更を無視しません。

Git ignore の目的

Git ignore は、リポジトリ内のノイズを無視します。次に例を示します。

$ git init
$ mkdir tmp
$ touch tmp/file1
$ touch tmp/file2
$ git status
# On branch master
#   
# Initial commit
#   
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#   
#   tmp/
nothing added to commit but untracked files present (use "git add" to track)

tmp ディレクトリを無視するように .gitignore ファイルを変更した場合:

$ echo "tmp" > .gitignore
$ git status
# On branch master
#   
# Initial commit
#   
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#   
#   .gitignore
nothing added to commit but untracked files present (use "git add" to track)

tmp dir の内容は表示されなくなりましたが、.gitignore ファイルは表示されます (作成したばかりで、ファイル自体は無視されないため)。

それをコミットすると、リストされている変更はありません:

$ git add .gitignore
$ git commit -v -m "addding git ignore file"
[master (root-commit) d7af571] addding git ignore file
1 file changed, 1 insertion(+)
    create mode 100644 .gitignore
$ git status
# On branch master
    nothing to commit (working directory clean)

.gitignore ファイルへの変更は保留中の変更として表示され、tmp ディレクトリ外の新しいファイルは未追跡ファイルとして表示され、tmp ディレクトリ内の変更は無視されます。

追跡したくないファイルをコミットしない

既に conf.php を git リポジトリに追加している場合、git はファイルを追跡しています。それが変更されると、git保留中の変更があることを通知します。

このような問題の解決策は、追跡したくないファイルをコミットしないことです。代わりにできることは、デフォルトのファイルをコミットすることです。

$ mv conf.php conf.php.default
$ # Edit conf.php.default to be in an appropriate state if necessary
$ git commit -v -m "moving conf.php file"
$ cp conf.php.default conf.php

これで、conf.php に加えた変更は、ステージングされていない変更として表示されなくなります。

于 2012-10-25T14:21:57.410 に答える
3

とにかく走れgit rm --cached conf.php

無視するコミット済みファイルが他にもある場合:

git rm -r --cached .

git add .


次に、変更をコミットしてプッシュします。

于 2012-10-25T14:21:59.567 に答える