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

如何从Git提交中移除子模块SHA变更?

解决方案

情况1:提交尚未推送到远程仓库

如果你的提交还没推送到远程,可以直接修改最近的提交,移除子模块的SHA变更:

  1. 撤销最近的提交,将所有修改退回到暂存区:
git reset HEAD~1
  1. 取消子模块文件的暂存状态:
git reset HEAD src/repo1 src/repo2

执行后,src/file1.cpp和src/file1.hpp仍保留在暂存区,子模块的SHA变更会回到未暂存状态。

  1. 重新提交你的修改:
git commit -m"你的提交描述"
  1. (可选)如果不需要保留子模块的本地更新,将子模块恢复到顶层仓库原记录的版本:
git submodule update src/repo1 src/repo2

情况2:提交已推送到远程仓库

如果提交已经推送到远程,为了不破坏仓库历史,建议新建一个提交来回滚子模块的SHA:

  1. 将子模块恢复到顶层仓库原记录的版本:
git submodule update src/repo1 src/repo2
  1. 提交恢复操作:
git commit -m"恢复repo1和repo2的子模块SHA至原版本"

内容的提问来源于stack exchange,提问作者A. K.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:42:06