我知道如何从历史记录中删除整个 changeset,但不清楚如何仅删除其中的一部分。
例如,如何在保留源代码的情况下从现有的 changeset 中删除所有 DLL 文件?
例如,如何在保留源代码的情况下从现有的 changeset 中删除所有 DLL 文件?
exclude
来实现。这将创建一个新的、无关的仓库,这意味着任何人都不能再从它那里拉取克隆,并且必须重新从这个新仓库进行克隆。# 这个文件用于排除特定的文件 exclude "subdir/filename1.ext" exclude "subdir/filename2.ext" exclude "subdir2"
hg convert --filemap map.txt c:/oldrepo c:/newrepo注意:即使在Windows上也必须使用“正斜杠”来指定路径。
PS. 在“原始”仓库中,你需要删除所有的变更集并重新推送你的新仓库。
PPS. 我实际上写了一篇关于此主题的博客文章,其中包含更多详细信息(包括在Bitbucket中剥离变更集等)。