好吧,所以我经常使用这个代码: git reset --soft HEAD~1
撤消 SourceTree 上的错误提交。我的任务是与 P4V 合作,我对此没有太多经验,但这对我来说一直是“魔力”。 Perforce/HelixCore 中与此等效的是什么?
我感谢所有帮助!
Perforce 没有与许多 git 命令相当的精确;任何涉及在 git 中更改
HEAD
的内容在 Perforce 中都不会直接等效,因为在 Perforce 中,您只能在旧版本之上提交新修订(如果您拥有 admin
权限,则严格来说这并不正确,但 Perforce 的核心最终用户工作流程是围绕您提交的任何内容都是不可变的这一承诺而构建的,并且通过仅限管理员的命令(如 p4 unsubmit
和 p4 obliterate
)违反该承诺将导致很多事情无法正常工作,除非您非常小心)。
如果您想撤消最新的更改,您可能需要使用
undo
命令。 您首先需要确定要撤消的具体更改,在本例中听起来像是最新的更改:
p4 changes -m1 ...
我使用
...
将其限制为影响当前目录的已提交更改;您还可以指定完全任意的路径和/或添加其他过滤器,例如 --me
。 一旦确定了要撤消的具体更改,您就可以像这样撤消它:
p4 undo @CHANGE
这与 git 的
revert
命令(与 p4 revert
完全没有相似之处,所以不要混淆它们)比 reset
更相似,但可能是实现您正在尝试的最佳路径去做。 运行 p4 undo
后,文件将在您的工作区中打开,与变更列表 CHANGE 中发生的任何更改相反;您可以 p4 submit
这些文件来实际撤消先前在仓库中提交的更改,或者您可以对它们进行进一步修改,也许可以选择性地撤消某些更改,同时保留其他更改。