2

パターンを無視して否定する方法を知っているといつも思っていましたが、困惑しています。sites/ベースラインのDrupalをインストールしていますが、いくつかの特定のサブディレクトリを除いて、フォルダー内のすべてを無視したいと思いsites/allますsites/my-project

.vagrant
settings.php

# A directory set aside for user contributed assets
uploads/

# All we care about is sites/all and sites/my-project
www/sites/*
!www/sites/all
!www/sites/my-project

.gitignoreプロジェクトルートに上記のファイルがある場合、を実行すると、期待するすべてのものが取得されgit add .ますが、からは何も取得されwww/sites/allませんwww/sites/my-project。ここで何が欠けていますか?現在気になっているファイルは1つだけですが(www/sites/my-project/settings.sample.php)、他のすべてのように追加されない理由がわかりません。

私はそれを強制することができることを知っていますが、私はより大きな問題を理解したいと思います。ここで何が欠けていますか?それが価値があるものは何でも、これは私の最初のコミットです。それが重要だとは思いませんが、そうでないこともわかりません。

アップデート

おっと!私が気にかけている1つのファイル無視されているようです(これにより、ディレクトリが無視される理由が説明されます)。どこで、なぜかはわかりませんが、見る場所があります...

4

1 に答える 1

0

問題はありません:

$ find .
.
./.gitignore
./www
./www/sites
./www/sites/ignored
./www/sites/ignored/file
./www/sites/my-project
./www/sites/my-project/file
./www/sites/my-project/settings.sample.php
./www/sites/all
./www/sites/all/file
$ git init
Initialized empty Git repository in /home/desert69/tmp/gitignore/.git/
$ cat .gitignore 
.vagrant
settings.php

# A directory set aside for user contributed assets
uploads/

# All we care about is sites/all and sites/my-project
www/sites/*
!www/sites/all
!www/sites/my-project
$ git add .
$ git status --short
A  .gitignore
A  www/sites/all/file
A  www/sites/my-project/file
A  www/sites/my-project/settings.sample.php
$ git --version
git version 1.7.10.4

したがって、すべてが機能しているようです。

rm -rf .git/ && git init以前に他のファイルを無視または追加した場合に備えて、念のために実行してみてください。

ドットが一致しsettings.phpていると解釈されているのではないかと思いましたが、そうではないようです。*.sample.

initリポジトリを削除して再作成してみてください。

于 2013-03-14T18:00:01.787 に答える