我常常遇到如下情况:
我想保留这些文件的版本历史记录,但它们只会偶尔更新。如果每次进行提交或合并或更新时都要记住,不想要提交本地更改的密码,这很烦人。
如何冻结存储库中的文件(相反,对于偶尔的合法更新,解冻它),以便它不会出现在提交列表中,但在存储库中显示为版本化,并且每个人都可以共享一个库副本?
答案 0 :(得分:3)
这个问题被问了很多,答案总是一样的:没有好办法做你想做的事。跟踪所跟踪的文件以进行所有更改。
每个人都安排的设置是将配置文件.example提交到repo,每个人都需要更改所需的更改,并将配置文件添加到您的ignore中。如果您精通,那么您的启动脚本会将configurationfile.example复制到配置位置(如果它尚不存在)。如果您的配置格式足够灵活以支持包含(大多数是这些天),那么您已经提交了配置文件并让它包含一个非跟踪(忽略)配置文件.local,其中人们覆盖事物。这就是每个人都在git和Mercurial中的表现。
答案 1 :(得分:2)
-X
选项,用于合并的无(简单)
-X --exclude PATTERN [+] exclude names matching the given patterns
,即大多数时候你提交hg ci -X FILENAME
,有时候 - 纯hg ci
。您可以将hg ci -X FILENAME
定义为新别名,并为不同的提交使用两个不同的命令
如果是合并,您可以尝试定义配置文件特殊merge-tool(可证明internal:local or internal:fail)
无论如何,您选择了将本地配置存储为共享公共文件的错误且容易出错的方法。 (可行的)替代方案可能包括(仅举几例)