如何管理本地修改的版本化文件而不将其提交给Git?

时间:2016-04-06 15:13:13

标签: git git-stash

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

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

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

所以我想知道,有没有办法告诉Git保留一个文件,因为

1 个答案:

答案 0 :(得分:4)

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

我建议你使用不同的工作流程,它实际上与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文件不存在,则没有任何反应,一切都像以前一样工作,因此其他团队成员不会受到影响。