【发布时间】:2011-09-05 05:13:35
【问题描述】:
我输入了
$ hg addremove
但后来意识到某些文件不应该是提交的一部分。我应该做的是将这些文件添加到 .hgignore 中,然后运行 addremove 并提交。
有没有办法解决这个问题?
【问题讨论】:
标签: mercurial
我输入了
$ hg addremove
但后来意识到某些文件不应该是提交的一部分。我应该做的是将这些文件添加到 .hgignore 中,然后运行 addremove 并提交。
有没有办法解决这个问题?
【问题讨论】:
标签: mercurial
如果您还没有提交,只需使用hg forget fileToForget 或使用 Tortoise 删除文件。
如果您已提交并且不介意文件成为历史的一部分,只需忘记它们并再次提交即可。
如果您不希望它们成为存储库历史记录的一部分,并且如果提交它们是您所做的最后一次操作,您可以尝试回滚(使用 hg rollback 或进入 Tortoise 的恢复菜单)。您将不得不忘记该文件,然后再次提交
如果您处理的文件太多,您可以尝试通过获取所有已添加文件的列表来自动执行任务,忘记它们,修改您.hgignore 并再次执行addremove。
powershell 中没有提交的第一步示例
hg status --added --no-status | foreach-object {hg forget $_};
【讨论】:
hg status --added --no-status | xargs hg forget.
hg forget "set:added()" 试试这个。
hg status --added --no-status | xargs -d '\n' hg forget。
要撤消您尚未提交的 addremove,只需运行:
$ hg revert --all
【讨论】:
addremove的影响之外没有其他变化。
hg forget 是这样做的正确方法。请查看@CedricRup 的答案