如何解决用于提交工作的 Git 子模块 foreach 别名
我设置了一个别名,用于使用提交消息提交包子模块中的所有修改过的文件。这曾经有效,但最近由于 git 更新,它停止了猜测。
别名看起来像这样
SubmoduleCommit = "!f() { git submodule foreach 'git commit --all --message=$1 || :'; }; f"
但它不再起作用,任何想法都会改变。错误是消息需要一个值,因此不会执行 git 操作。 如果我将代码复制到 bash 并将 $1 替换为“提交消息”,则它可以正常工作。
解决方法
您遇到的问题是双引号内的变量会立即展开。在您的情况下, $1
被扩展为空,因为它从未被分配过。取而代之的是,使用单引号时,没有扩展,并且字符串按照您所见复制(除非您使用 \
转义)。
git config alias.SubmoduleCommit '!f() { git submodule foreach "git commit --all --message=$1 || :"; }; f'
您可以使用
查看别名的样子git config --list | grep "^alias\."
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。