Mercurial and xcuserdata, .ds_store, and .git



Mercurial noob在这里。我在处理mercurial和像xcuserdata、.ds_store和.git这样的文件时遇到了很多麻烦。我束手无策。

目前的设置有一个充当中间人的中央回购。我们推拉对它的更改。

在生成.hgnore文件之前,以前推送了包含不需要的文件(xcuserdata、git、ds_store(的提交。这引起了噩梦。

我尝试过的:

我试着忽略这个问题,让merge处理它,但由于冲突,每次推送都会导致中央回购上的分支(推送上的冲突没有显示在终端中,所以我没有机会在推送上合并(,并损坏项目文件,导致filemerge和kdiff3等合并工具挂起。

我尝试制作一个本地.hgnore文件,并在xcuserdata上使用hgforget来停止跟踪这些文件,但它仍然推送和拉取那些不需要的文件。

我想发生的事情:

我希望中央回购删除那些不需要的文件。每个开发人员仍然应该有自己的本地版本的这些文件。新的提交将忽略这些文件。我该怎么做?

感谢

只需hg forget要删除的文件,然后将其推送到服务器。下次团队的其他成员从存储库中提取时,文件也会被遗忘。

注意,forget只适用于当前分支,如果您有其他分支,则必须在每个分支上执行。

要自动忘记.hgignore中包含的所有文件,可以执行

hg forget "set:hgignore()"

确保团队的每个成员都知道你对这些文件的决定,否则他们将来可能会再次添加这些文件。沟通是关键!

仅供参考,.hgignore对存储库中已经存在的文件没有任何影响,它只影响未添加的文件。

否则,如果您真的想从历史记录中完全删除该文件,您可以使用MQ扩展,但这是另一回事,它要复杂得多,而且毫无用处。

相关内容

  • 没有找到相关文章

最新更新