在Mercurial中撤消上一个addremove?

ske*_*ept 8 mercurial

我打字了

$ hg addremove
Run Code Online (Sandbox Code Playgroud)

但后来意识到有些文件不应该是提交的一部分.我应该做的是将这些文件添加到.hgignore,然后运行addremove和commit.

有没有办法解决这个问题?

Céd*_*Rup 16

如果你还没有hg forget fileToForget提交,只需使用或使用Tortoise删除文件.

如果您已经提交并且您不介意将文件作为历史记录的一部分,那么请忘记它们并再次提交.

如果您不希望它们成为存储库历史记录的一部分,并且如果提交它们是您最后一次操作,则可以尝试回滚(使用hg rollback或进入Tortoise中的恢复菜单).您将不得不忘记该文件,然后再次提交

如果您正在处理太多文件,您可以尝试通过获取所有添加文件的列表,忘记它们,修改您.hgignoreaddremove再次执行来自动执行任务.

PowerShell的第一步示例,没有提交

hg status --added --no-status | foreach-object {hg forget $_};
Run Code Online (Sandbox Code Playgroud)

  • 对于linux类型`hg status --added --no-status | xargs hg忘了`. (7认同)