如何修复在非主分支上提交的修改后的子模块引用?
How to fix modified submodule refs committed on non-master branch?
我无意中在我的功能分支上提交了修改后的子模块引用。我需要将它们重置为它们在 master 上的状态。
要解决此问题,您必须在每个子模块中检查正确的提交 SHA,然后在顶级存储库中提交这些更改。这是我想出的:
- 将最新的主分支合并到您的分支中。
运行以下
for module in module1 module2 path/to/module3;
do
(cd $module && git checkout "$(git rev-parse origin/master:$module)" && cd -)
done
git commit -am 'fix submodule refs' && git push
一个班轮
for module in module1 module2 path/to/module3; do (cd $module && git checkout "$(git rev-parse origin/master:$module)" && cd -); done; git commit -am 'fix submodule refs' && git push
创建别名
alias fix-submodules='for module in module1 module2 path/to/module3; do (cd $module && git checkout "$(git rev-parse origin/master:$module)" && cd -); done; git commit -am "fix submodule refs" && git push'
现在您可以运行:fix-submodules
我无意中在我的功能分支上提交了修改后的子模块引用。我需要将它们重置为它们在 master 上的状态。
要解决此问题,您必须在每个子模块中检查正确的提交 SHA,然后在顶级存储库中提交这些更改。这是我想出的:
- 将最新的主分支合并到您的分支中。
运行以下
for module in module1 module2 path/to/module3; do (cd $module && git checkout "$(git rev-parse origin/master:$module)" && cd -) done git commit -am 'fix submodule refs' && git push
一个班轮
for module in module1 module2 path/to/module3; do (cd $module && git checkout "$(git rev-parse origin/master:$module)" && cd -); done; git commit -am 'fix submodule refs' && git push
创建别名
alias fix-submodules='for module in module1 module2 path/to/module3; do (cd $module && git checkout "$(git rev-parse origin/master:$module)" && cd -); done; git commit -am "fix submodule refs" && git push'
现在您可以运行:fix-submodules