2012-05-28 129 views
79

我正在嘗試爲使用NuGet的Visual Studio項目創建一個.gitignore。它目前包含:.gitignore NuGet排除軟件包/包括軟件包/ repositories.config

\packages/* 
!packages/repositories.config 

這不會忽略文件夾中的任何內容。一切都在一個添加上演。我也嘗試過:

packages/ 
!packages/repositories.config 

這會忽略packages文件夾中的所有內容,並且不包括packages/repositories.config。

我在做什麼錯?

回答

107
/packages/ 
!packages/repositories.config 

,您還可以在包文件夾中添加一個.gitignore

* 
!repositories.config 
!.gitignore 
+0

爲你最喜歡的項目.IGNORE文件這爲我工作 - 謝謝! –

+2

我甚至提出這個問題https://github.com/github/gitignore –

+11

如果'.gitignore'忽略了它自己,它*會是一個恥辱。 +1 – Thomas

11

這對我的作品。

#NuGet 
packages 
!packages/repositories.config 

(同@manojlds's answer除了除去在第一線。這並沒有爲我工作的明星。)

8

我發現這個簡單的模式工作。

/packages/*/ 

它應該忽略根包目錄中的所有目錄,但在其中包含所有文件。不知道除了repositories.config以外還有哪些其他文件可能會出現,或者它們是否應該包含在存儲庫中。

參見.gitignore Syntax: bin vs bin/ vs. bin/* vs. bin/**

26

我面臨着同樣的問題。

上述解決方案都不適用於我。我認爲這是一個糟糕的解決方案來維護多個.ignore文件。

這就是我解決它的方法。

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

組合兩個星號將匹配任何字符串的文件夾。我認爲捨去星號會有同樣的效果,但顯然我(我們)是錯誤的,因爲它似乎並不奏效。

官方.gitignore template for Visual Studio建議以下解決方案:

# 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生成:-)

+2

這是我工作的唯一變體,因爲我在每個軟件包文件夾中有多個項目。謝謝。 –

+2

它應該是被接受的答案。 –

+1

工作良好的是推薦的Visual Studio +官方模板,取消註釋最後一行。 – vezenkov