如何从 Mercurial 的整个项目历史记录中删除所有 Java 类文件?
当我启动 Mercurial 项目时,我忘记排除 target/classes
目录下的所有内容,例如:
target/classes/com/mypackage/MyClass.class
现在,当我执行 hg update
时,这些二进制文件会导致冲突。
是否有一个命令可以让我从整个项目历史记录中删除所有这些文件?
或者,如果没有,是否有一个命令可以让我一次删除一个文件?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您只想删除最新版本中的文件,请从磁盘中删除文件并使用
hg addremove
或hg remove --after target/classes/com/mypackage/*.class
通知 Mercurial 您的删除事宜。如果您想从整个历史记录中永久删除所有类文件,请使用
hg Convert
和--filemap
选项可重写您的存储库并删除所有修订版中的文件。然而,这个解决方案改变了修订ID。在多用户环境中,它可能会导致一些问题,因为它有效地创建了新的存储库。If you just want to remove files from last revision, remove files from disk and use
hg addremove
orhg remove --after target/classes/com/mypackage/*.class
to inform Mercurial about your deletion.If you want to permanently remove all class files from you entire history use
hg convert
and--filemap
option to rewrite your repository and get rid of files from all revisions. However this solution alters revision ids. In multi user environment it may cause some problems because it creates a new repository effectively.如果您删除有问题的文件,然后执行
hg addremove
,那么这些文件将从存储库中删除。然而,它们仍然会留在历史中,但这真的是一个问题吗?If you delete the files in question then do
hg addremove
then the files will be removed from the repository. However they will still be in the history though, but is that really a problem?使用
hg remove --after target/classes/com/mypackage/*.class
。 (--after
将避免删除磁盘上的文件)。Use
hg remove --after target/classes/com/mypackage/*.class
. (--after
will avoid deleting the on-disk files).