【发布时间】:2019-08-26 05:31:42
【问题描述】:
我有一个 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
【问题讨论】:
-
这个想法有点清楚,但你的帖子很混乱。一开始你声明你想传入 2 个字符串而不是一个。您的示例显示没有使用任何变量,也没有显示原始脚本。下一部分说当您传递 3 个参数时会出现错误。您不想只传递 2 个参数吗?
-
你在哪里定义
f?!是无效的 shell 语法;它在定义 Git 别名时的用途是指示 Git 将后面的内容视为 shell 命令,而不是另一个 Git 子命令。 -
您还有一个错误
[$2 = 1]。$2不是提交信息吗?你不想检查$3吗? -
对
git commit的调用中的反斜杠也是可疑的,具体取决于您实际定义f的位置。 -
那么你应该把它放在问题中。