如何在切换分支时使git忽略nuget包

时间:2016-02-18 11:42:52

标签: git nuget nuget-package-restore

我在 .gitignore 中将packages文件夹标记为忽略,但在切换分支时,git会部分删除内容,并且在包恢复重新获取包之前需要一段时间在下一次构建期间。理想情况下,我希望在切换分支时不要触及packages文件夹(特别是当repositories.config文件中的两个分支都有相同的nuget包时)。我想知道我应该怎么做才能让git忽略分支交换机中的包?

以下是我的.gitignore文件示例:

    # 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/    
    !**/packages/repositories.config

1 个答案:

答案 0 :(得分:1)

您可以尝试使用assume-unchanged标志
https://git-scm.com/docs/git-update-index

当您切换分支时,将其设置为开启,当您希望它再次跟踪您的文件时,请将其设置为开启。

- [无糖]假设-不变

  

指定此标志时,不会更新为路径记录的对象名称。

     

相反,此选项设置/取消设置"假设未更改"路径的位。

     

当"假设不变"如果位已打开,则用户承诺不更改文件,并允许Git假定工作树文件与索引中记录的文件匹配。
  如果要更改工作树文件,则需要取消设置该位以告诉Git。

     

在处理具有非常慢的lstat(2)系统调用(例如cifs)的文件系统上的大项目时,这有时很有用。

     

如果需要在索引中修改此文件,Git将失败(优雅地),例如合并时提交;因此,如果上游更改了假定未跟踪文件,则需要手动处理该情况。

enter image description here