自从我升级到Visual Studio到2015年以来,我遇到了这个烦人的问题。
我的存储库中有一个批处理脚本,用于根据Visual Studio版本编译所有源代码。由于我更新了它,但其他用户保留了VS 2013,我不得不更改Visual Studio版本以编译源代码,现在我被迫使用每次提交任何内容时弹出的修改后的脚本文件。
我试图隐藏它,但当我git stash pop
我的更改(可能每天都会发生)时,修改过的脚本会弹出其他文件。
所以我想知道,有没有办法告诉Git保留一个文件,因为好?
答案 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
文件不存在,则没有任何反应,一切都像以前一样工作,因此其他团队成员不会受到影响。