【发布时间】:2015-05-22 21:08:28
【问题描述】:
我在一个项目中使用 Visual Studio 2013 Express,并使用 Git。
我创建了我的存储库并将项目文件从另一个目录复制到其中。然后我检查了我的.gitignore 和.gitattributes 文件。 .gitignore 已预先配置,并希望涵盖此时我需要忽略提交的所有内容。
我选择了 Visual Studio 中“团队资源管理器”选项卡下的“更改”选项卡,并看到我的所有文件都未跟踪,正如预期的那样。然后我点击“全部添加”。我假设 VS 只会将与我的 .gitignore 中的文件不匹配的文件添加到“包含的更改”列表中。相反,所有文件都被添加到“包含的更改”列表中。
然后我想在提交时可能会使用.gitignore 文件,并且只有与.gitignore 中的文件不匹配的文件才会被提交。所以我添加了一条提交消息并点击了“提交”。
当我从“更改”选项卡的“操作”下拉菜单中选择“查看历史记录”时,我的“团队资源管理器”视图左侧会出现一个窗格,其中显示了我所做的所有提交。只有 1 次提交。当我双击该提交时,“团队资源管理器”选项卡将显示 Commit 8db34b1c,并且我项目中的所有文件都列在树视图中,名称后带有 [add]。
例如,App_Data/Movies.mdf 和 App_Data/Movies.ldf 已列出,即使我的 .gitignore 包含这些行
# SQL Server files
App_Data/*.mdf
App_Data/*.ldf
我不明白 .gitignore 文件在此处的使用方式或“包含的更改”、“排除的更改”或“未跟踪的文件”部分的含义。
将不胜感激对上述行为和部分的解释。
编辑--
我删除了我的 .git 目录,创建了一个新的 repo,再次复制了我的项目文件,然后对我看到的内容进行了截图。
这是我的 .gitignore 文件和“更改”选项卡的图像。
this SO question 和 this msdn question 表明其他人似乎也有问题。我尝试在我的 .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
【问题讨论】:
-
你的git repo(由
.git文件表示)是在MvcMovie目录还是MvcMovie目录之上? -
我的 git repo 位于顶部 MvcMovie 目录中。
标签: git visual-studio-2013 gitignore