如何在不提交 Git 的情况下管理本地修改的版本控制文件?

How to manage locally modified versioned file without committing it to Git?

自从我升级到 Visual Studio 到 2015 后,我遇到了这个烦人的问题。

我的存储库中有一个批处理脚本,用于编译所有源代码,基于 Visual Studio 版本。由于我更新了它,但其他用户保留了 VS 2013,我不得不更改 Visual Studio 版本以编译源代码,现在我不得不忍受每次提交任何内容时都会弹出的修改后的脚本文件。

我试图隐藏它,但是当我 git stash pop 我的更改(每天都可能发生)时,修改后的脚本会与其他文件一起弹出。

所以我想知道,有没有办法告诉 Git 保持文件原样永远

您正在做的是一个损坏的工作流程,这就是您遇到问题的原因。

我建议您使用不同的工作流程,它实际上与 Visual Studio 使用的相同(见下文)。

基本上,您有一个整个团队共享的脚本,但您还需要有一个用户特定的脚本。因此,更改该团队共享脚本以包含用户特定脚本(仅当它存在时)并提交团队共享脚本。

然后创建用户特定的脚本,它将覆盖或重新定义您需要更改的团队共享脚本中的值,并将此用户特定的脚本添加到 .gitignore(不要提交它! ).

这样一来,您团队中的每个成员都可以拥有自己的特定于用户的配置,而不会影响团队中的其他成员。顺便说一句,这正是 Visual Studio 所做的 - *.sln 是共享解决方案配置,*.suo 是用户配置,不应提交。

存储库可能如下所示:

repository
  |
  +-- configuration
  +-- user-configuration

和团队共享 configuration 像这样:

default_values_shared_by_team

include_if_exists user-configuration

some_code
...

user-configuration 中,您只需将 default_values_shared_by_team 更改为设置中需要的值。如果 user-configuration 文件不存在,则什么也不会发生,一切如常,因此其他团队成员不受影响。