You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行git rebase -i --root时遇package-lock.json覆盖错误求解决

解决Git变基时package-lock.json冲突问题

问题根源

初始提交里包含了package-lock.json,后续提交将它加入.gitignore取消追踪。执行git rebase -i --root时,Git会从初始提交开始重建提交历史,此时初始提交会试图将package-lock.json写入仓库,但当前工作区存在未被追踪的同名文件,Git为防止数据丢失报错中断变基。

解决步骤

  1. 中止当前变基进程
    先回到正常工作状态:

    git rebase --abort
    
  2. 备份工作区的package-lock.json
    避免文件内容丢失,先移到临时位置:

    mv package-lock.json package-lock.json.bak
    
  3. 重新启动交互式变基

    git rebase -i --root
    
  4. 修改初始提交,移除package-lock.json
    在弹出的todo编辑界面中,将初始提交的pick改为edit(比如把pick 47377f1...改成edit 47377f1...),保存退出后Git会停在初始提交的修改状态:

    • 从初始提交中移除package-lock.json(仅从仓库移除,后续恢复本地文件):
      git rm --cached package-lock.json
      
    • 提交修改后的初始提交:
      git commit --amend --no-edit
      
    • 继续完成变基:
      git rebase --continue
      

    此时可按需求修改其他提交的信息,完成变基流程。

  5. 恢复本地的package-lock.json
    变基完成后,把备份的文件恢复:

    mv package-lock.json.bak package-lock.json
    
  6. 强制推送修改后的历史到远程
    因为修改了历史提交,需要用强制推送更新远程仓库(--force-with-lease比--force更安全,会检查远程是否有未同步的修改):

    git push --force-with-lease
    

内容的提问来源于stack exchange,提问作者NXY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 10:27:46