ASP.NET解决方案中.gitignore文件的正确放置路径咨询
.gitignore的正确放置位置及问题解决
正确的位置绝对是root-folder(你的解决方案根目录,也就是.sln文件所在的目录)——这也是Git仓库的根目录(你应该是在root-folder下初始化的Git仓库吧?)。
你遇到的两个问题都可以通过调整.gitignore的规则来解决,完全不用移动文件位置:
问题1:根目录放.gitignore时,子项目的bin/obj仍被追踪
VS自动生成的.gitignore可能只写了根目录下的bin/和obj/,但你的项目在MyProject-folder子目录里,所以需要改成递归匹配所有子目录下的bin和obj。在root-folder的.gitignore里添加这两行:
**/bin/ **/obj/
**/表示匹配任意层级的子目录,不管你的项目文件夹叫什么,里面的bin/obj都会被忽略。
问题2:移到项目目录时,.vs文件夹被追踪
因为根目录没有.gitignore了,VS生成的.vs文件夹(用来存储IDE配置)自然就会被Git识别为未追踪的变更。所以必须在根目录的.gitignore里加上对.vs的忽略:
.vs/
额外注意:如果之前已经提交过bin/obj或.vs文件
如果这些文件已经被Git追踪过了,光改.gitignore是没用的,需要先移除它们的追踪状态(不会删除本地文件):
git rm --cached -r MyProject-folder/bin/ git rm --cached -r MyProject-folder/obj/ git rm --cached -r .vs/
执行完这些命令后,提交一次变更,之后Git就会严格按照.gitignore的规则来忽略这些文件了。
补充一份适合你的ASP.NET解决方案的.gitignore片段
除了上面的核心规则,还可以加上这些常见的忽略项,让你的.gitignore更完整:
# Visual Studio IDE文件 *.suo *.user *.userosscache *.sln.docstates # 构建输出(大小写兼容) **/[Bb]in/ **/[Oo]bj/ # NuGet包缓存 packages/ **/packages/* # 测试结果目录 TestResults/
内容的提问来源于stack exchange,提问作者cnom
相关产品推荐
相关产品推荐

