Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使git在切换分支时忽略nuget包_Git_Nuget_Nuget Package Restore - Fatal编程技术网

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

如何使git在切换分支时忽略nuget包,git,nuget,nuget-package-restore,Git,Nuget,Nuget Package Restore,我已将.gitignore中的packages文件夹标记为已忽略,但在切换分支时,git会部分删除内容,并且在下一次生成期间,package restore会重新蚀刻包,这需要一段时间。理想情况下,我希望在切换分支时不要触摸packages文件夹(特别是在repositories.config文件的两个分支中都有相同的nuget包时)。我想知道我应该怎么做才能让git在分支切换期间忽略包 下面是我的.gitignore文件的一个示例: # NuGet Packages *.nup

我已将.gitignore中的packages文件夹标记为已忽略,但在切换分支时,git会部分删除内容,并且在下一次生成期间,package restore会重新蚀刻包,这需要一段时间。理想情况下,我希望在切换分支时不要触摸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

您可以尝试使用
假定未更改
标志

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


--[否-]假设不变 指定此标志后,不会更新为路径记录的对象名称

相反,此选项设置/取消设置路径的“假定未更改”位

当“假定未更改”位打开时,用户承诺不更改文件,并允许Git假定工作树文件与索引中记录的内容匹配。
如果要更改工作树文件,需要取消设置位以告知Git。

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

如果Git需要在索引中修改此文件,例如在提交中合并时,Git将失败(正常);因此,如果假定未跟踪的文件在上游更改,则需要手动处理这种情况


不确定为什么不忽略repositories.config文件和生成目录。我会完全忽略packages目录,我认为这将解决您看到的问题。如果您正在使用Visual Studio或Xamarin Studio的最新版本的NuGet,NuGet软件包还原将在生成之前还原生成目录和repositories.config文件(如果需要)。谢谢您的建议。我下次遇到这个问题时会试试。