1

私は git で管理している Lemonstand サイトを構築中です。そのため、次の .gitignore ルールを使用しています。

# Lemonstand
.htaccess
php.ini
boot.php
index.php
install.php
/config/*
/controllers/*
/init/*
/logs/*
/phproad/*
/temp/*
/uploaded/*
/installer_files/*
/modules/backend/*
/modules/blog/*
/modules/cms/*
/modules/core/*
/modules/session/*
/modules/shop/*
/modules/system/*
/modules/users/*
# add content_*.php if you don't want erase client changes to content

/modules/gallery/*
/modules/lddevel/*
/modules/tweak/*

(一番上のブロックは github から取得しました。2 番目のブロックは、Lemonstands 更新システムの問題を回避するために自分で追加したいくつかの追加ルールです)。

私の問題は、Lemonstand にカスタム請求書を追加していることです。これには、(長い話を短くするために) 内/modules/shop/invoice_templates/にフォルダーといくつかのファイルを追加する必要があり、名前を付けましcm_standardた。

これはデフォルトの Lemonstand に追加されているため、git で追跡したいので、gitignore ファイルの最後に次のルールを使用しようとしています。

!/modules/shop/invoice_templates/cm_standard/*

しかし、 を実行するgit add -Aと、そのディレクトリ内のファイルが取得されません。私がしても、git add modules/shop/invoice_templates/cm_standard/*それは私に言います:

The following paths are ignored by one of your .gitignore files:
modules/shop/invoice_templates
Use -f if you really want to add them.
fatal: no files added

これは、ルールを正しく記述していないことをさらに示唆しています-誰か助けてもらえますか? ありがとうございました。

4

1 に答える 1

1

パス セグメントが少ないパターンを無視すると、パス セグメントが多いパターンよりも優先さ/modules/shop/*れる!/modules/shop/invoice_templates/cm_standard/*こと/modules/shop/invoice_templates/があり !/modules/shop/invoice_templates/cm_standardます。そうは言っても、順序付けも重要であり、その場合、直感に反して、ファイル内の後の規則が前の規則よりも優先されます。

この質問は、gitignore 除外ルールは実際にどのように機能しますか?とよく似ています。だから私はあなたがそれを読むことをお勧めします. また、ルールをデバッグするcheck-ignoreときにサブコマンドが役立つ場合があります。このサブコマンドは、数か月前に git に追加したもので、数日前にリリースされたバージョン 1.8.2 に追加されたばかりです。

于 2013-03-18T18:43:08.903 に答える