Mercurial 新手在这里。使用Mercurial和文件(例如xcuserdata和.ds_store和.git)时遇到很多麻烦。我机智。
当前设置有一个中央存储库,其作用类似于中间人。我们向其推送和拉出更改。
在制作.hgignore文件之前,以前曾推送过包含不需要的文件(xcuserdata,git,ds_store)的提交。这引起了噩梦。
我试过的
我尝试忽略问题并让合并处理,但是由于冲突(每次在终端上未显示推送冲突,因此我没有机会合并),每次冲突都会导致中央存储库上的分支每次推送项目文件,以至于导致诸如filemerge和kdiff3之类的合并工具挂起。
我尝试制作一个本地.hgignore文件,并在xcuserdata上使用hg忘了停止跟踪这些内容,但是它仍然会推拉那些不需要的文件。
我想发生的事情:
我希望中央存储库删除那些不需要的文件。每个开发人员仍应具有自己的那些文件的本地版本。新提交将忽略那些文件。我该怎么做?
谢谢
最佳答案
只需hg forget
您要删除的文件,然后将其推送到服务器即可。下次团队的其他成员将从存储库中提取文件时,这些文件也将被遗忘。
请注意forget
仅适用于当前分支,如果您有其他分支,则必须在每个分支上都这样做。
要自动忘记.hgignore
中包含的所有文件,您可以执行以下操作
hg forget "set:hgignore()"
确保团队的每个成员都知道您对这些文件的决定,否则他们将来可能会再次添加这些文件。沟通是这里的关键!
仅供引用,
.hgignore
对存储库中已为的文件没有任何影响,它仅影响未添加的文件。否则,如果您真的想从历史记录中完全删除文件,则可以使用MQ扩展名,但这是另一回事了,它更加复杂且无用,恕我直言。
关于xcode - Mercurial和xcuserdata,.ds_store和.git,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8129912/