【发布时间】:2015-08-16 10:50:10
【问题描述】:
有没有办法使用git命令直接更新索引中的子模块哈希?
如果没有,有没有办法通过修改 .git 目录中某处的文本来手动更改它?
我想指向子模块中的特定提交,但我想避免进入该子模块,检查提交,将子模块添加到索引,然后检查子模块中的原始提交。 例如:
cd <submod>git checkout <hash>cd ..git add <submod>cd <submod>-
git checkout <originalbranch>- 以编程方式确定
<originalbranch>可能需要更多的命令。
- 以编程方式确定
当然,这都可以编写脚本,但是由于子模块状态是通过单个哈希在索引中捕获的,因此应该可以使用单个命令来执行此操作,而无需实际检查提交的冗长不必要的流程.
【问题讨论】:
-
我不认为
(cd submodule/path; git checkout <commitid>); git commit -m 'updated submodule' submodule/path太长了。那是两个 git 命令和一个cd。 -
@larsks,你错过了几个必要的命令。我已经更新了这个问题,以说明更多对替代命令的渴望。
标签: git git-submodules git-add