Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control Mercurial——指定某些文件应始终被拉入,但决不被推入?_Version Control_Mercurial - Fatal编程技术网

Version control Mercurial——指定某些文件应始终被拉入,但决不被推入?

Version control Mercurial——指定某些文件应始终被拉入,但决不被推入?,version-control,mercurial,Version Control,Mercurial,我的存储库中有一些文件我希望能够在本地编辑。但我从不想将对这些文件的任何更改推送到服务器。我能帮你安排一下吗 编辑:为了澄清这一点,我确实希望得到其他人所做的更改。但我不想推动我的更改。这不容易做到。Mercurial不推拉文件,而是推拉更改集。你唯一的途径就是永远不要提交那些文件。忽略它们不是一个选项,因为它们已经被跟踪(添加)并且跟踪始终覆盖忽略 您可以在提交时明确排除它们,如 hg commit -X a-file-I-changed -X another-file 由于您最终会忘记这

我的存储库中有一些文件我希望能够在本地编辑。但我从不想将对这些文件的任何更改推送到服务器。我能帮你安排一下吗


编辑:为了澄清这一点,我确实希望得到其他人所做的更改。但我不想推动我的更改。

这不容易做到。Mercurial不推拉文件,而是推拉更改集。你唯一的途径就是永远不要提交那些文件。忽略它们不是一个选项,因为它们已经被跟踪(添加)并且跟踪始终覆盖忽略

您可以在提交时明确排除它们,如

hg commit -X a-file-I-changed -X another-file 
由于您最终会忘记这样做,您可以在hgrc中设置别名:

[alias]
mycommit = -X a-file-I-changed -X another-file 

然而,我要冒险一试,我猜你们谈论的是一个配置文件,比如数据库设置文件。处理这个问题的最佳方法不是提交
database.conf
(或它的名称),而是提交
database.conf.sample
,然后让启动脚本将database.conf.sample复制到database.conf(如果它不存在)。这是正常的做法。

< P>如果你的改变是实质性的,就考虑把它变成一个补丁。您可以
弹出
您的更改,拉出他们的更改,然后
您的更改推回到工作目录。如果这是一个您无法忍受丢失的更改,您可以使队列成为自己的存储库,然后将该存储库克隆到其他位置。

Ry4an写入,您可以在提交时排除该文件。我的一位同事做了一个简单的扩展,可以在简单的情况下自动执行此操作:


非简单的情况是合并——Mercurial不允许您在提交合并时排除文件。现在,您必须将修改后的文件移到一边,还原它,然后在合并后将其移回原处。欢迎修补程序处理此情况

妈的,通常都是这样。跟我走。