Git 子模块还原提交

Git submodule revert commit

我在 Git 项目 super 中有一个子模块 sub。现在 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

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

你有什么建议吗?

你能试试这个命令并检查一下吗?

git checkout --recurse-submodules {branch_name}

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

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

谢谢大家的回答!