Git命令git reset --soft HEAD~1在Perforce/HelixCore中的等效操作
Git
git reset --soft HEAD~1 在P4V中的等效操作 先理清楚:git reset --soft HEAD~1 本质就是保留所有文件修改,只撤销最后一次提交,把修改放回待提交状态。对应到Perforce/Helix Core的P4V工具,分两种情况来操作:
情况1:要撤销的是已经提交到服务器的变更列表
这对应Git里已经完成提交(不管有没有推送到远程)的场景,步骤如下:
- 打开P4V,切换到【Submitted】标签页,找到你要撤销的那个变更列表
- 右键点击该变更列表,选择【Undo Submitted Changelist】
- 系统会自动生成一个新的待提交变更列表,里面包含撤销原提交的反向修改,同时本地工作区的文件会回到原提交前的状态——所有修改都保留着,只是从已提交状态变回了待提交
- 你可以直接修改这个新变更里的文件,之后重新提交就行
情况2:要撤销的是本地未提交的待处理变更列表
如果你的错误操作只是把修改放到了本地待处理变更里还没提交(类似Git暂存后未commit的状态),要撤销这个变更但保留修改:
- 切换到【Pending】标签页,找到目标待处理变更
- 右键点击它,选择【Delete Changelist】
- 在弹出的对话框里勾选【Keep Files Open】,确认删除
- 这些文件会回到默认变更列表,所有修改都保留,完全符合你要的soft reset效果
额外提下命令行操作(如果需要)
要是你习惯用命令行,对应操作是:
- 撤销已提交变更:
p4 undo @=<变更号> - 删除待处理变更但保留修改:
p4 change -d -k <变更号>(-k参数就是保留文件打开状态)
内容的提问来源于stack exchange,提问作者Donut5
相关产品推荐
相关产品推荐

