Git 提交工作的子模块 foreach 别名

Git Submodule foreach alias to commit work

我设置了一个别名,用于使用提交消息提交包子模块中的所有修改文件。这曾经有效,但最近由于 git 更新,它已停止猜测。

别名看起来像这样

    SubmoduleCommit = "!f() { git submodule foreach  'git commit --all --message= || :'; }; f"

但它不再起作用,任何想法都会改变。错误是消息需要一个值,因此不会执行 git 操作。 如果我将代码复制到 bash 并将 $1 替换为“提交消息”,那么它就可以正常工作。

你遇到的问题是双引号里面的变量会立即展开。在您的情况下, </code> 被扩展为空,因为它从未被分配过。相反,如果使用单引号,则不会进行扩展,并且会按照您看到的方式复制字符串(除非您使用 <code>\ 进行转义)。

git config alias.SubmoduleCommit '!f() { git submodule foreach  "git commit --all --message= || :"; }; f'

您可以通过

查看别名的外观
git config --list | grep "^alias\."