now*_*way 7 git git-submodules
我编写了下面的脚本来推送工作区中的所有更改,包括子模块和超级项目.然而,听起来有点奇怪,做我想做的事情是如此复杂.有没有更好的方法,我错过了?
#!/bin/bash
if [ "$#" -ne 1 ]; then
echo "Illegal number of parameters"
exit
fi
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "${SCRIPT_DIR}/../submodule1"
git status
git add -A
git commit -m "$1"
git push origin master
cd "${SCRIPT_DIR}/../submodule2"
git status
git add -A
git commit -m "$1"
git push origin master
cd "${SCRIPT_DIR}/../submodule3"
git status
git add -A
git commit -m "$1"
git push origin master
printf "\n\nUpdating Super Project\n\n"
cd ..
git status
git add -A
git commit -m "All Submodules Updated - $1"
git push origin master
Run Code Online (Sandbox Code Playgroud)
ken*_*orb 10
您可以使用git submodule foreach在每个子模块上运行任何所需的命令,例如
git submodule foreach git push origin master
Run Code Online (Sandbox Code Playgroud)
git1.7.11([ANNOUNCE] Git 1.7.11.rc1)提到:
学习了“ git push --recurse-submodules”,可以有选择地查看绑定到超级项目的子模块的历史并将其推出。
因此,您可以使用:
git push --recurse-submodules=on-demand
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2939 次 |
| 最近记录: |