如何用hg commit --amend替代废弃的hg rollback修正错误提交
用
hg commit --amend修正错误提交的步骤 针对你不小心提交了所有修改文件(a/b/c/d)、只想保留a文件提交的场景,用hg commit --amend修正的具体操作如下:
记录错误提交的哈希值
先获取刚才错误提交的变更集ID,执行命令:hg log -l1从输出里找到类似
changeset: X:abcdef123456的行,记下这个哈希串(比如abcdef123456)。将b/c/d恢复到提交前的原始状态
把误提交的b、c、d三个文件还原到提交前未修改的状态,执行:hg revert -r .^ b c d这里的
.^代表当前变更集的父节点,也就是你执行错误提交之前的状态。用--amend修正提交
现在工作区只有a文件是修改后的状态(和错误提交里的a一致),执行命令修正上一次提交:hg commit --amend此时会打开提交信息编辑器,你可以保留原有的提交信息,修改后保存退出即可。这一步会生成一个新的变更集,完全替换掉之前的错误提交,新提交只包含a文件的修改。
恢复b/c/d的修改到工作区
最后从之前记录的错误提交中,把b、c、d的修改恢复到工作区,执行:hg revert -r abcdef123456 b c d把命令里的
abcdef123456替换成你第一步记下的错误提交哈希。
操作完成后,你会得到一个仅包含a文件的正确提交,同时b、c、d的修改回到工作区,可随时提交。
内容的提问来源于stack exchange,提问作者Charlweed
相关产品推荐
相关产品推荐

