VS2013使用GIT时排除NuGet的packages文件夹

本文介绍如何在VS2013中使用Git时,避免将NuGet的PACKAGES文件夹提交到版本库。通过撤销NuGet文件夹的改动并编辑.gitignore文件来实现。

VS2013已经集成了GIT工具

但是在提交会把NUGET的PACKAGES也提交上去,那是比较大的文件夹,而且没什么必要提交。

修改.gitignore也没用后来发现要这样做才可以

  1. 将工程加入Git管理,此时会生成.gitignore文件。
  2. 查看更改的文件,会发现此时Nuget文件夹会被加进包含的修改列表来了,在文件夹上点击右键选择撤销(并不会删除文件),此时Nuget文件夹便会进入未跟踪的文件列表中。
  3. 编辑.gitignore文件,加入Nuget排除项,此时它就会从未跟踪的文件列表中清除掉了。

<think>我们已经在之前的问题中讨论过使用.gitignore排除文件,但这里特别针对VS2017项目。 VS2017生成的解决方案通常会包含一些临文件和调试文件,这些不应该提交到Git仓库。 典型的需要排除的文件和目录包括:bin/, obj/, .vs/, *.user, *.suo等。 解决方案: 1. 在解决方案根目录创建或编辑.gitignore文件。 2. 添加适合VS2017的忽略规则。 以下是一个标准的VS2017 .gitignore文件内容: </think>### 在 Visual Studio 2017 中排除 Git 提交中的 Debug 文件 在 VS2017 中排除调试文件需要正确配置项目设置和 `.gitignore` 文件。以下是完整解决方案: #### 步骤 1:创建/修改全局 `.gitignore` 文件 在解决方案根目录创建 `.gitignore` 文件(或修改现有文件),添加以下内容: ```plaintext # VS2017 专用忽略规则 ## 编译输出 ## [Bb]in/ [Oo]bj/ *.exe *.dll *.pdb *.cache *.manifest ## 用户特定文件 ## *.user *.userosscache *.sln.docstates ## VS文件 ## .vs/ *.suo *.opensdf *.sdf *.log ## 其他生成文件 ## _ReSharper.* *.resharper [Tt]humbs.db ``` #### 步骤 2:配置 VS2017 项目属性(重要) 在项目属性中设置不复制调试文件到输出目录: 1. 右击项目 → 属性 → 生成事件 2. 在预生成事件命令行中添加: ```cmd del "$(TargetDir)*.pdb" > nul 2>&1 del "$(TargetDir)*.xml" > nul 2>&1 ``` #### 步骤 3:使用 `.gitattributes` 强制忽略(可选) 创建 `.gitattributes` 文件防止特定文件被提交: ```plaintext # 强制忽略调试文件 *.pdb binary -diff *.exe binary -diff *.dll binary -diff ``` #### 步骤 4:清理已跟踪的调试文件(如需要) ```bash # 停止跟踪所有 pdb 文件 git rm --cached **/*.pdb # 停止跟踪所有 bin/obj 目录 git rm -r --cached */[Bb]in/ git rm -r --cached */[Oo]bj/ # 提交更改 git commit -m "移除调试文件跟踪" ``` #### 步骤 5:验证忽略规则(PowerShell 脚本) ```powershell # 验证 .gitignore 规则 function Test-GitIgnore { param([string]$RepoPath = ".") Push-Location $RepoPath $ignored = git status --ignored --porcelain | Where-Object { $_ -match "^!! " } | ForEach-Object { $_.Substring(3) } Write-Host "被忽略的文件/目录:" $ignored | Format-Table Pop-Location } # 使用示例 Test-GitIgnore -RepoPath "C:\YourSolutionPath" ``` ### VS2017 特定注意事项 1. **NuGet 缓存**:添加忽略规则 ```plaintext packages/ *.nupkg ``` 2. **测试覆盖率文件**: ```plaintext *.coverage *.coveragexml ``` 3. **IntelliTrace 文件**: ```plaintext *.iTrace ``` ### 自动配置脚本(Python) ```python import os def setup_vs2017_gitignore(solution_path): """自动配置VS2017项目的.gitignore文件""" gitignore_path = os.path.join(solution_path, ".gitignore") vs2017_rules = """ # VS2017 自动生成的忽略规则 [Bb]in/ [Oo]bj/ .vs/ *.suo *.user *.pdb *.exe *.dll *.cache *.log *.nupkg packages/ TestResults/ """ # 创建或追加到现有文件 if os.path.exists(gitignore_path): with open(gitignore_path, "a") as f: f.write("\n# === VS2017 专用规则 ===\n") f.write(vs2017_rules) else: with open(gitignore_path, "w") as f: f.write(vs2017_rules) print(f".gitignore 已配置在 {gitignore_path}") # 使用示例 setup_vs2017_gitignore(r"C:\Your\Solution\Path") ``` ### 最佳实践 1. **解决方案级配置**: - 将 `.gitignore` 放在解决方案根目录 - 禁止提交 `*.user` 和 `*.suo` 文件 2. **使用 Git 钩子自动清理**: 创建 `.git/hooks/pre-commit` 文件: ```bash #!/bin/sh find . -name "*.pdb" -exec rm {} + find . -name "*.exe" -exec rm {} + ``` 3. **项目文件配置**(.csproj): ```xml <PropertyGroup> <DebugType>none</DebugType> <!-- 禁用PDB生成 --> <CopyOutputSymbolsToOutputDirectory>false</CopyOutputSymbolsToOutputDirectory> </PropertyGroup> ```
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值