如何撤销两次提交前package-lock.json文件的提交更改
撤销已推送的package-lock.json历史更改
如果你只是想让package-lock.json回到两次提交前的状态,同时保留历史提交记录(这种方式最安全,不会影响协作的其他开发者),按以下步骤操作:
首先将该文件恢复到两次提交前的版本:
git show HEAD~2:package-lock.json > package-lock.json这个命令会把HEAD往前数第2个提交里的
package-lock.json内容,覆盖当前本地的同名文件。然后提交这个恢复操作:
git add package-lock.json git commit -m "Revert package-lock.json to state before last two commits"最后推送到远程仓库:
git push
如果你希望彻底从历史记录中移除该文件的这次更改(仅适合你独自使用的分支,或者团队成员都知晓并同意的情况,因为会修改远程历史):
先将该文件的状态重置到两次提交前:
git reset HEAD~2 package-lock.json这会把该文件的暂存区状态恢复到HEAD~2时的样子,本地文件也会同步更新。
接着修改最近的两次提交(需要交互式变基):
git rebase -i HEAD~2在弹出的编辑器里,把包含
package-lock.json更改的那行前面的pick改成edit,保存退出后,执行:git commit --amend --no-edit git rebase --continue最后强制推送到远程(注意:会覆盖远程的历史提交,谨慎操作):
git push --force-with-lease
内容的提问来源于stack exchange,提问作者haydnD
相关产品推荐
相关产品推荐

