hg forget和hg remove有什么区别?

Pau*_*han 312 version-control mercurial

我希望mercurial从存储库的当前状态中删除多个文件.但是,我希望文件存在于以前的历史记录中.

怎么做forgetremove不同,他们能做我想做的事吗?

Ry4*_*ase 344

' hg forget'只是' '的简写hg remove -Af.来自' hg remove'帮助:

...和-Af可用于从下一版本中删除文件而不从工作目录中删除它们.

底线:' remove'从磁盘上的工作副本中删除文件(除非您使用-Af),否则' forget'没有.

  • @ Ry4an:说真的,这太荒谬了.我贡献了重新引入'忘记'的补丁.当我做它时,我意识到 - 在代码中完全有意义,但从用户的角度来看,这完全是荒谬的. (32认同)
  • 嘿,这就是多变的好处 - 人们从用户的角度积极地,反复地思考什么才有意义.谢谢你修复那个. (10认同)
  • 本地构建配置文件等?本地工具的路径因系统而异?意外添加了一个您不想在源代码管理中但想要保存的日志文件?我猜它会发生. (9认同)
  • "hg forget"在Mercurial 1.3中重新引入,作为"hg remove -Af"的简单方法.它会调度文件以进行删除,而无需将其从工作副本中删除. (7认同)
  • 很高兴听见.'remove -Af'(以及'删除'帮助页面上的整个选项表)是疯狂的. (5认同)
  • 我想补充说,这是一种糟糕的方式,试图忽略对两个repos中常见的文件的更改,因为这将删除那些文件,当你从你忘记的repo中推或拉.这一切都是删除文件没有核对你的工作区副本(在我的情况下,我们有配置,你需要编辑该死的远程仓库中的本地东西,这不是我的电话).国际海事组织,称这个命令"忘记"是非常误导的 (3认同)

Mar*_*ler 41

把最好的办法是,hg forget相同的,以hg remove 除外,它让文件在后面工作副本.这些文件作为未跟踪文件留下,现在可以选择忽略模式.hgignore.

换句话说,我不知道你是否使用过,hg forget或者hg remove当我从你那里撤走时.在运行了一个文件hg forget一样,如果你曾经使用-当我更新到该变更被删除hg remove,而不是.


Jas*_*ena 27

从文档中,您显然可以使用任一命令将文件保留在项目历史记录中.看起来你想删除,因为它也从工作目录中删除文件.

来自http://hgbook.red-bean.com/read/上的Mercurial书:

删除文件不会影响其历史记录.重要的是要理解删除文件只有两个效果.它从工作目录中删除当前版本的文件.它阻止Mercurial从下次提交时开始跟踪对文件的更改.删除文件不会以任何方式改变文件的历史记录.

手册页hg(1)说这是关于忘记:

标记指定的文件,以便在下次提交后不再跟踪它们.这仅从当前分支中删除文件,而不是从整个项目历史记录中删除文件,并且不会从工作目录中删除它们.

这个关于删除:

安排指定的文件以从存储库中删除.这仅从当前分支中删除文件,而不是从整个项目历史记录中删除.