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
谢谢大家的回答!
我在 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
谢谢大家的回答!