当我开始我的Mercurial项目时,我忘了排除target/classes
目录下的所有内容,例如:
target/classes/com/mypackage/MyClass.class
现在,当我执行hg update
时,这些二进制文件会导致冲突。
是否有一个命令允许我从整个项目历史中删除所有这些文件?
或者,如果没有,是否有一个命令允许我一次删除一个文件?
答案 0 :(得分:3)
如果删除有问题的文件,请执行hg addremove
,然后将从存储库中删除这些文件。然而,它们仍然会在历史中,但这真的是一个问题吗?
答案 1 :(得分:3)
如果您只想删除上一版本中的文件,请从磁盘中删除文件并使用hg addremove
或hg remove --after target/classes/com/mypackage/*.class
通知Mercurial您的删除。
如果要永久删除整个历史记录中的所有类文件,请使用hg convert
和--filemap
选项重写存储库并删除所有修订版中的文件。但是,此解决方案会改变修订ID。在多用户环境中,它可能会导致一些问题,因为它会有效地创建新的存储库。
答案 2 :(得分:2)
使用hg remove --after target/classes/com/mypackage/*.class
。 (--after
将避免删除磁盘文件。)