【发布时间】:2012-11-26 02:06:20
【问题描述】:
通过使用git add -A 和git commit -a,我显然可以添加/提交对我当前所在的存储库的所有更改。但是,有没有办法将 all 子模块包含在添加/提交并将相同的提交消息应用于每个?
【问题讨论】:
标签: git git-submodules git-commit
通过使用git add -A 和git commit -a,我显然可以添加/提交对我当前所在的存储库的所有更改。但是,有没有办法将 all 子模块包含在添加/提交并将相同的提交消息应用于每个?
【问题讨论】:
标签: git git-submodules git-commit
您可以使用别名。制作脚本:例如~/supercommit.sh
#!/bin/bash -e
if [ -z $1 ]; then
echo "You need to provide a commit message"
exit
fi
git submodule foreach git add -A .
git submodule foreach git commit -am "$1"
git add -A .
git commit -am "$1"
并将其标记为可执行 (chmod +x)。现在,创建一个别名:
git config alias.supercommit '!~/supercommit.sh "$@"; #'
应该可以(我会测试一下)
【讨论】:
嗯,这是 9 年前提出的问题,今天当我在寻找同样的东西时,它对我很有帮助。但是,我在让它正常工作时遇到了一些问题,所以我发布这个是为了帮助其他可能面临同样问题的人。
问题:
修复:
更新代码
#!/bin/bash -e
if [ -z "$1" ]; then
echo "You need to provide a commit message"
exit
fi
git submodule foreach "
git add -A .
git update-index --refresh
commits=\$(git diff-index HEAD)
if [ ! -z \"\$commits\" ]; then
git commit -am \"$1\"
fi"
git add -A .
git commit -am "$1"
【讨论】: