如何使用git reset重置未推送提交且不丢失本地修改
Git reset参数说明及对应操作指南
三种核心参数差异
--hard:会同步清除提交记录、暂存区内容、本地工作区修改,会直接删除本地未入库的文件,无备份请勿使用,不符合你的需求。--mixed:git reset的默认参数,无需手动指定也会生效。执行后会撤销目标提交记录、清空暂存区内容,完全保留所有本地工作区的文件,适配你的需求。--soft:仅撤销目标提交记录,暂存区你之前add的内容会完整保留,本地文件也不会改动,如果你需要保留之前的暂存内容可以用这个,但是你要重新选提交文件的话用默认mixed模式更方便。
具体操作步骤
你需要撤销最近1次的错误提交,直接执行以下命令即可:git reset HEAD~1
命令执行完成后:
- 你本地的所有原文件不会有任何改动
- 之前那次错误提交的记录会被清除
- 所有之前提交的内容都会回到未暂存的状态,你可以直接剔除体积过大的不合规文件,或者将其添加到
.gitignore中避免后续被误提交,之后重新选择需要提交的文件执行git add、git commit即可正常推送。
如果有已经误加入暂存区的大文件,你可以执行git rm --cached <大文件路径>将其从暂存区移除,本地文件仍会保留。
内容的提问来源于stack exchange,提问作者Asael Bar Ilan
相关产品推荐
相关产品推荐

