.gitignore NuGet exclude packages / include packages / repositories.config


89

NuGetを使用するVisual Studioプロジェクトの.gitignoreを作成しようとしています。それは現在含まれています:

\packages/*
!packages/repositories.config

これはフォルダー内の何も無視しません。すべてが追加でステージングされます。私も試しました:

packages/
!packages/repositories.config

これにより、packagesフォルダー内のすべてが無視され、packages / repositories.configは含まれません。

何が悪いのですか?

回答:


114
/packages/
!packages/repositories.config

.gitignoreパッケージフォルダにを追加することもできます。

*
!repositories.config
!.gitignore

12
それ自体が無視されればそれ残念です.gitignore。+1
トーマス

2
最初のブロックは機能しません(gitバージョン1.8.4.msysgit.0)。最初の行にはpackagesスターがないはずです。
Grant Birchmeier、2014年

1
Visual Studioがまだパッケージフォルダーを表示していることがわかりました。ファイルが尊重されるためにはms-persist.xml.gitフォルダーから削除.gitignoreする必要がありました。詳細については、ericnelson.wordpress.com / 2014/06/21 /…を参照してください。
rudivonstaden 2015年

どのバージョンを試したかわかりませんが、うまくいきません/packages/でした。代わりに、私はこの答えがとても役に立ちました。要するにpackages/*トリックをしました。Gitバージョン2.6.1
Stelios Adamantidis

36

私は同じ問題に直面しました。

上記の解決策のどれも私にとってうまくいきませんでした。そして、複数の.ignoreファイルを維持することは、貧弱なソリューションだと思います。

これは私がそれを解決した方法です。

**/packages/*
!**/packages/repositories.config

2つのアスタリスクを組み合わせると、フォルダーの任意の文字列に一致します。アスタリスクを省略しても同じ効果があると思っていましたが、動作しないようで、明らかに私(私たち)は間違っていました。

Visual Studioの公式の.gitignoreテンプレートでは、次のソリューションを推奨しています。

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config

編集:https : //www.gitignore.ioを使用して、お気に入りのプロジェクトの.ignoreファイルを生成できます:-)


2
リポジトリに複数のプロジェクトがあり、それぞれにパッケージフォルダがあるため、これは私にとって有効な唯一のバリアントです。ありがとう。
Michael Logutov

1
うまく機能するのは、Visual Studioの推奨公式テンプレートであり、最後の行のコメントを外します。
vezenkov 2015年

1
これは実際には少し危険です。ソリューションレベルのフォルダだけでなく、「packages」という名前のフォルダはすべて無視されます。私のモデルクラスの一部がリポジトリの一部ではなかったことに気づきました。
リッチ

2
これが更新されました:#NuGet Packages .nu​​pkg#Package Restoreのため、packagesフォルダーは無視できます** / packages /#MSBuildターゲットとして使用されるbuild /を除きます。!ターゲット
Daniel Ryan

それ!**/packages/build/が私のために機能しないことを除いて、与えられた解決策では...ビルドフォルダはコミットされません
JobaDiniz


8

この単純なパターンが機能することがわかりました。

/packages/*/

ルートパッケージディレクトリ内のすべてのディレクトリを無視しますが、そこにすべてのファイルを含めます。repositories.config以外のどのファイルがそこに表示されるか、またはそれらをリポジトリに含める必要があるかどうかが不明です。

.gitignoreの構文も参照してください:bin vs bin / vs. bin / * vs. bin / **


0

私にとってはこれだけがうまくいきました:

**/packages/**

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.