Git在解析
.gitconfig
行。因此,当你写道:
"!f() { branchNumber=${1}; type=${2}; shift; shift; subject=${*}; git commit -m '['"$branchNumber"'] '"$type"': '"$subject"' '; }; f"
什么
看到的是:
!f() { branchNumber=${1}; type=${2}; shift; shift; subject=${*}; git commit -m '['$branchNumber'] '$type': '$subject' '; }; f
$subject
展开后,它变成单独的单词:
git c 1000 feat add new sales controller
git
commit
-m
[1000] feat: add
new
sales
controller
(我把每个“词”单独画在一条线上)。(单词后面还有一个空白
controller
,因为这是由单引号保护的。)如果您愿意,另一种用于StackOverflow过帐的方法可能是:
git
commit
-m
[1000] feat: add
new
sales
也就是说,命令本身将每一个都视为一个单独的“单词”:因此提交日志消息是
[1000]专长:添加
;
,
出售
控制器
被视为
路径规范
论据。
一个简单的解决方法是用反斜杠双引号替换要保留的每个双引号:
c = "!f() { branchNumber=${1}; type=${2}; shift; shift; subject=${*}; git commit -m '['\"$branchNumber\"'] '\"$type\"': '\"$subject\"' '; }; f"
为了使它更易读,请注意双引号足以
参数(这里的不同地方不需要大括号):
c = "!f() { branchNumber=$1; type=$2; shift 2; subject=$*; git commit -m \"[$branchNumber] ${type}: $subject\"; }; f"