使用git commit -a -m时不想使用双引号

时间:2013-01-10 12:57:51

标签: git bash shell

当我使用git commit

时,我有点厌倦了使用双引号
git commit -a -m "fix xxx error"

当我设置这样的别名时:

coam = "!f() { git commit -a -m $1; }; f"

键入

时有效
git coam fix

它提交为

git commit -a -m "fix"

但是如何设置一个可以处理的命令

git commit -a -m "fix xxx error"

当我输入

git coam fix xxx error

我测试

coam = "!f() { git commit -a -m $*; }; f"

但它不起作用!

谢谢!

2 个答案:

答案 0 :(得分:9)

“我有点厌倦了使用双引号”,< - 但你没有选择。

这就是shell的工作方式:它有一些机制可以使它如果一个参数包含通常是输入字段分隔符的字符(提示:这就是为什么IFS环境变量被命名的原因) ,它仍然被执行的命令作为参数。

git commit的{​​{1}}选项只需一个参数。这些双引号是必要的。

你可以转过来的唯一方法是拥有自己的小shell脚本,它会为你收集这些参数:

-m

如果上面的脚本被称为#!/bin/bash exec git commit -a -m "$*" 并且在您的路径中,您可以执行以下操作:

mygitcm

引用您的示例,我想这可行:

mygitcm my commit message here

(当然,另一个好主意是制作解释性提交信息;)

答案 1 :(得分:1)

function gc { git commit -a -m "$*"; }