我有一个bash脚本,已经使用了一段时间了,可以将以下Git命令自动转换为单个命令,以便于使用:
git add.
git commit -m
git push
该脚本在.gitconfig文件中定义为别名。到目前为止,它确实运行良好,但是我希望能够为其添加一些额外的功能,以便我可以传递两个字符串而不是一个字符串。第一个字符串是JIRA票证编号,第二个字符串是提交消息。在将提交推送到远程之前,代码编号将在提交消息之前。
我尝试更改脚本,但是现在当我输入三个参数时,出现too many arguments
错误。我不确定自己在做什么错。
!f()
{
ticketNumber=$1
commitmessage=$2
confirm=$3;
if [ $2 = 1 ];
then
git add .;
git status;
git commit -m \"[${ticketNumber}] ${commitmessage}\";
git push; fi
};
f
例如,以下函数调用会产生错误:
git commitpushthis "JIRA-137" "Test commit message" 1
答案 0 :(得分:1)
问题在于$2
没有被引用,这意味着您最终会得到类似
[ Test commit message = 1 ]
引用$2
可以解决此问题,尽管足够长的时间让您意识到您仍然打算使用$3
。正确的定义似乎是(为简洁起见,省略了变量名):
commitpushthis = "!f() { if [ \"$3\" = 1 ]; then git add .; git status; git commit -m \"[${ticketNumber}] ${commitmessage}\"; git push; fi; }; f"
答案 1 :(得分:0)
我设法解决了这个问题。显然,这是由于另一个用户指出的`if [$ 2 = 1]错误。
下面显示的新代码可以正常工作。
!f()
{
ticketNumber=$1
commitmessage=$2
confirm=$3;
if [ $3 = 1 ];
then
git add .;
git status;
git commit -m \"[${ticketNumber}] ${commitmessage}\";
git push; fi
};
f