我在项目上使用Git使用Visual Studio 2013 Express.
我创建了我的存储库,并将项目文件从另一个目录复制到其中.然后我检查了我.gitignore和.gitattributes文件. .gitignore是预配置的,并且看起来涵盖了此时我需要忽略的所有提交.
我在"团队资源管理器"选项卡下的Visual Studio中选择了"更改"选项卡,并按预期方式查看了所有文件未跟踪.然后我点击"全部添加".我假设VS只会将与我的文件不匹配的文件添加.gitignore到"包含的更改"列表中.而是将所有文件添加到"包含的更改"列表中.
然后我想,也许.gitignore文件将在提交时使用,并且只提交与那些文件不匹配的文件.gitignore.所以我添加了一条提交消息,然后单击"提交".
当我从"更改"选项卡的"操作"下拉列表中选择"查看历史记录"时,我会看到"我的团队资源管理器"视图左侧的窗格,其中显示了我所做的所有提交.只有1个提交.当我双击该提交时,将显示"团队资源管理器"选项卡,Commit 8db34b1c并且我的项目中的所有文件都在树视图中列出,其名称后面带有[添加].
例如,即使我包含行App_Data/Movies.mdf,App_Data/Movies.ldf也会列出.gitignore
# SQL Server files
App_Data/*.mdf
App_Data/*.ldf
Run Code Online (Sandbox Code Playgroud)
我不明白.gitignore文件是如何在这里使用的,或者"包含的更改","排除的更改"或"未跟踪的文件"部分是什么意思.
将理解对上述行为和部分的解释.
编辑 -
我删除了我的.git目录,创建了一个新的repo,再次复制了我的项目文件,然后截取了我看到的内容.
这是我的.gitignore文件和我的"更改"标签的图像.

有这个问题和这个msdn问题表明其他人似乎也有问题.我尝试删除我的.git目录中VS添加的.xml文件(如msdn问题中所述),但这并没有解决我的问题.
编辑2 -
这是我目前的目录结构:
/MvcMovie/
|--.git/
|
|---MvcMovie/
| |--App_Data/
| | |--Movies.mdf
| | |--Movies.ldf
| |
| |--App_Start/
| |--etc...
|
|--packages/
|--.gitignore
|--.gitattributes
|--MvcMovie.sln
|MvcMovie.v12.suo
Run Code Online (Sandbox Code Playgroud) 我有.gitignored .DS_Store和.gitignore文件.但仍然在"git status"中看到它们.
有人可以向我解释如何在检查状态时确保我试图忽略的文件没有显示出来吗?
git status
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .DS_Store
# .gitignore
Run Code Online (Sandbox Code Playgroud)
我.DS_Store在我的存储库的所有子文件夹中都有该文件.所以我希望所有这些都被忽略.我该怎么办?
我已经.gitignore在我的存储库的根目录中配置了文件.我应该将其复制到git的所有子文件夹中以忽略这些文件吗?是增加.gitignore在.gitignore文件中不能接受的?
编辑:2014年1月21日==================
我仍然无法弄清楚这一点.以下评论对我没有帮助.所以我正在重新发布我的查询.
下面是我git status输出的片段.实际输出跨越几页.此输出中的所有文件都是我不想要的文件/文件夹.这些是未跟踪的文件,所以我从来没有git add编过它们.但是当我创建一个新项目时,我必须在添加它们之前在这个巨大的列表中搜索相关的文件/文件夹,这使得整个过程有点恼人.
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# ../../.DS_Store
# ../../Classes/
# ../.DS_Store
# ../Basics/.DS_Store
# ../adt/.metadata/
# ../adt/Fundamentals/.classpath
# ../adt/Fundamentals/.project …Run Code Online (Sandbox Code Playgroud) 我的.gitignore工作是否合作?我将packages文件夹添加到它,它仍然希望在每次提交时提交我的所有包.
我现在正在做的是在每次提交时排除包文件夹,这是非常可怕的.我错过了什么,或者它是Visual Studio/Visual Studio在线Git系统中的错误?
# NuGet Packages Directory
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
packages/
Run Code Online (Sandbox Code Playgroud)
