【问题标题】:ignore subsequent changes to a file忽略对文件的后续更改
【发布时间】:2017-12-15 02:00:04
【问题描述】:

我有一个包含多个项目的 Visual Studio 解决方案,我想添加一个额外的空项目,并最初提交它,以便所有其他开发人员将拉取该项目,但忽略对两者的后续更改项目文件,以及所有开发人员的整个项目文件夹。该项目将包含特定于每个开发人员存储库的代码,并根据每个特定开发人员的需要在运行时吸收,无需从解决方案文件添加/删除项目,也无需维护第二个解决方案。任何开发人员对这些文件所做的任何进一步更改都不应提交。

.gitignore:

*

项目文件夹中的上述 gitignore 可防止将任何新添加项添加到存储库中,但仍会创建和更新项目文件中的引用。

如果跟踪的 sln 文件不需要引用特定的 csproj,这将不是问题。我只是一开始就不会跟踪 csproj。

我对其他问题(下文)中建议的解决方案的理解是它们是本地的,并且需要在每个开发人员的存储库中重现这些步骤,并且对于每个后续存储库实例都需要重复这些步骤。如果可能的话,使用 git 在所有拉取的存储库中实现这一目标的最佳解决方案是什么?

类似问题:

【问题讨论】:

标签: git visual-studio


【解决方案1】:

Git 中的文件要么被跟踪/存储库的一部分,要么不被跟踪。想到的一个选项是您可以将此项目添加为模板。然后,您的同事可以复制他们本地设置所需的任何配置。您最初添加的项目只会很少更改,可能是为了维护或迁移。但是可以根据需要修改每个开发者的本地副本。

【讨论】:

  • 我确实在其他一些问题中也看到过这种方法。这种方法的问题是需要跟踪的解决方案文件必须引用项目文件,以便它可以出现在 IDE 中,被构建和交互式调试。拥有一个模板项目,否则没有实际项目会导致在干净的环境中引用损坏。
  • 然后创建一个安装程序/解包工具,将项目放置在正确的位置。作为一般规则,您的开发设置内容不应由 Git 进行版本控制。
【解决方案2】:

经过大量阅读,我相信目前使用 git 是不可能的。 这里的答案似乎比我遇到的其他问题更完整地涵盖了可用的选项:

Keep file in a Git repo, but don't track changes

这些建议的解决方案确实不够。我试图实现的更大目标可以通过 Visual Studio 中的解决方案依赖来解决。然而,这也不支持,如下所述:

Visual Studio: How to make one solution depend on another?

【讨论】:

    【解决方案3】:

    也许采取不同的方法,您可以使用 git 挂钩并编写一些自定义代码,以确保这些文件在提交之前被撤消,或者在 VSTS 上强制执行(也许)以对这些文件进行更改。

    关于 git 钩子的更多细节: https://www.visualstudiogeeks.com/DevOps/UsingGitHooksWithVstsGitOnWindows

    或者,您可以采用更手动的方法,开发人员可以对这些文件进行更改,并通过拉取请求对文件进行同行代码审查,并根据团队的政策拒绝分支。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-21
      • 2013-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多