在 git 中回显任意参数
echo arbitrary arguments in git
我在别名中链接了一堆 git 命令,如下所示。如何让 'echo' 部分工作:
[alias]
comb = ! sh -c 'echo \"Combining branches with \"' && git checkout && git merge && git push && git checkout && :
一些背景:
Git Alias - Multiple Commands and Parameters
你的报价搞砸了:
comb = ! sh -c 'echo "Combining branches with " && git checkout "" && git merge "" && git push && git checkout ""'
您还可以考虑将别名更改为名为 git-comb
的可执行文件,并将其存储在路径中的某个位置:
$ cat /path/to/executables/git-comb
#!/bin/sh
if [ "$#" -ne 2 ]
then
>&2 printf 'Usage: %s <ref> <ref>\n" "${0##*/}"
exit 2
fi
echo "Combining branches with "
git checkout ""
git merge ""
git push
git checkout ""
这样你可以调用它:
$ git comb branch_1 branch_2
标准技巧是定义一个您立即调用的函数。
[alias]
comb = ! f () { echo "Combining branches with " && git checkout "" && git merge "" && git push && git checkout "" && :; } f
这简化了引用。
不要在 echo
周围使用单引号 — Unix shell 不会在单引号内展开参数。修复是
$ git config alias.comb '! sh -c "echo \"Combining branches with \""'
$ git config alias.comb
! sh -c "echo \"Combining branches with \""
示例:
$ git comb 1 2 3
Combining branches 1 with 2
或者
$ git config alias.comb '! sh -c "echo \"Combining branches $*\""'
$ git config alias.comb
! sh -c "echo \"Combining branches $*\""
$ git comb 1 2 3
Combining branches 1 2 3
我在别名中链接了一堆 git 命令,如下所示。如何让 'echo' 部分工作:
[alias]
comb = ! sh -c 'echo \"Combining branches with \"' && git checkout && git merge && git push && git checkout && :
一些背景: Git Alias - Multiple Commands and Parameters
你的报价搞砸了:
comb = ! sh -c 'echo "Combining branches with " && git checkout "" && git merge "" && git push && git checkout ""'
您还可以考虑将别名更改为名为 git-comb
的可执行文件,并将其存储在路径中的某个位置:
$ cat /path/to/executables/git-comb
#!/bin/sh
if [ "$#" -ne 2 ]
then
>&2 printf 'Usage: %s <ref> <ref>\n" "${0##*/}"
exit 2
fi
echo "Combining branches with "
git checkout ""
git merge ""
git push
git checkout ""
这样你可以调用它:
$ git comb branch_1 branch_2
标准技巧是定义一个您立即调用的函数。
[alias]
comb = ! f () { echo "Combining branches with " && git checkout "" && git merge "" && git push && git checkout "" && :; } f
这简化了引用。
不要在 echo
周围使用单引号 — Unix shell 不会在单引号内展开参数。修复是
$ git config alias.comb '! sh -c "echo \"Combining branches with \""'
$ git config alias.comb
! sh -c "echo \"Combining branches with \""
示例:
$ git comb 1 2 3
Combining branches 1 with 2
或者
$ git config alias.comb '! sh -c "echo \"Combining branches $*\""'
$ git config alias.comb
! sh -c "echo \"Combining branches $*\""
$ git comb 1 2 3
Combining branches 1 2 3