我有一个包含子模块的git存储库。通常我使用相同的提交消息提交repo和submodule。目前,当我想提交我的repo和子模块时,我正在做以下事情:
cd submodule
git add --all
git commit -m "message"
git push
cd ..
git add --all
git commit -m "message"
git push
我想要一个别名,允许我用一个命令执行此操作,例如
git commit-including-submodule "blah"
听起来很简单,但我对别名有一些问题。我最接近的是:
[alias]
commit-including-submodule = "!f() { \
if [ -u $1 ]; then \
echo "commit message required"; \
else \
git submodule foreach 'git add --all && git commit -m \"$1\"'; \
git add --all && git commit -m $1; \
echo "success"; \
fi; \
}; f"
然而,子模块中的提交消息是
git add --all&& git commit -m“$ 1”
是的,这是实际的提交消息,这看起来有点奇怪。我无法弄清楚这一点。有人可以帮忙吗?
感谢。
答案 0 :(得分:0)
看起来您可能无法成功转发引号。我认为这应该有用。
[alias]
commit-including-submodule = "!f() { \
if [ -u $1 ]; then \
echo "commit message required"; \
else \
git submodule foreach 'git add --all && git commit -m '"$1"'; \
git add --all && git commit -m $1; \
echo "success"; \
fi; \
}; f"