Git子模块还原提交

时间:2018-07-04 12:05:50

标签: git git-submodules

我在Git项目sub中有一个子模块super。现在super有多个分支,每个分支都可以指向sub的另一个提交。通过

更改super的分支
>$ git checkout <branchname>
但是,

没有正确地使sub再次指向正确的提交。而是

的结果
>$ git status

包含sub修改条目。

这只是几种情况中的一种,其中一种可能需要还原对sub的任何修改并检出super实际指向的提交。

对于文件,您可以随时运行

>$ git checkout -- path/to/file

恢复所有修改。因此,我基本上是在寻找一个等效的调用,以类似的快速简便的方式还原子模块。

我知道这可以通过两个命令的组合来实现:

>$ git submodule deinit -f /path/to/sub
>$ git submodule update --init --recursive /path/to/sub

但是我正在寻找一个较短的版本,该版本可能更容易记住并且可以更快地输入;)

您有什么建议吗?

2 个答案:

答案 0 :(得分:1)

可以请您尝试此命令并检查吗?

  

git checkout --recurse-submodules {branch_name}

答案 1 :(得分:0)

如torek所述,跳过deinit步骤效果很好。因此,以下命令为我完成了工作:

git submodule update --recursive /path/to/submodule

谢谢大家的回答!