这里是善变的菜鸟。我在使用 Mercurial 和 xcuserdata、.ds_store 和 .git 等文件时遇到很多麻烦。我已经无计可施了。
当前的设置有一个充当中间人的中央存储库。我们对其进行推送和拉取更改。
在创建 .hgignore 文件之前,之前推送的提交包含不需要的文件(xcuserdata、git、ds_store)。这导致了噩梦。
我尝试过的:
我尝试忽略该问题并让合并处理它,但由于冲突(推送上的冲突没有显示在终端中,所以我没有机会合并推送),它会导致每次推送时在中央存储库上出现分支并损坏项目文件损坏到导致 filemerge 和 kdiff3 等合并工具挂起的程度。
我尝试制作本地 .hgignore 文件并在 xcuserdata 上使用 hg忘记来停止跟踪这些内容,但它仍然会推送和拉出那些不需要的文件。
我想要发生的事情:
我希望中央存储库删除那些不需要的文件。每个开发人员仍然应该拥有这些文件的自己的本地版本。新提交将忽略这些文件。我该怎么做?
Thanks
Simply hg forget
您要删除的文件并将其推送到服务器。下次团队的其他成员从存储库中提取文件时,这些文件也将被遗忘。
当心forget
仅适用于当前分支,如果您有其他分支,则必须在每个分支上执行此操作。
自动忘记包含在的所有文件.hgignore
, 你可以做
hg forget "set:hgignore()"
确保团队的每个部分都知道您对这些文件的决定,否则他们将来可能会再次添加这些文件。沟通是这里的关键!
FYI, .hgignore
对文件没有任何影响already在存储库中,它仅影响未添加的文件。
否则,如果您确实想从历史记录中完全删除该文件,您可以使用 MQ 扩展,但这是另一个故事,恕我直言,它更加复杂且无用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)