这是我的bash功能。
push() {
> cd /var/www/html/wp
> git init
> git add *
> git commit -am $1
> git push -f origin master
> }
我想执行它。
debian8@hwy:$push 'to delete file test'
Reinitialized existing Git repository in /var/www/html/wp/.git/
fatal: Paths with -a does not make sense.
如何解决我的bash函数推送?
在 rm / var / www / html / wp / test
之后,可以成功执行以下命令 cd /var/www/html/wp
git init
git add *
git commit -am 'to delete file test'
git push -f origin master
我只想写一个bash函数push来添加参数,运行它如
push 'to delete file test'
让推送功能为
push(){
cd /var/www/html/wp
git init
git add *
git commit -am $1
git push -f origin master
}
答案 0 :(得分:5)
看起来$1
正在扩展为多个参数,Git将第一个作为提交消息,其余作为文件。保护"$1"
成引号。
但我必须补充说,该脚本存在一些问题。这是非常不安全的。您正在执行多个命令而不检查一次成功或输入是否合适。这样做并强制执行Git推送可能会让您在以后遇到大麻烦。
答案 1 :(得分:0)
注意:在Git 2.22(2019年第二季度)中,您实际上会看到其中“路径(在您的情况下为$1
值)没有意义。
错误消息“ git commit -a <paths>
出错误时给出的消息已更新。
请参见commit 5a1dbd4的Nguyễn Thái Ngọc Duy (pclouds
)(2019年3月20日)。
(由Junio C Hamano -- gitster
--在commit e313c76中合并,2019年4月25日)
commit
:改进“-a <paths>
”中的错误消息我今天做了一些愚蠢的事情,得到了
$ git commit -a --fixup= @^ fatal: Paths with -a does not make sense.
这没有任何意义(至少在最初的几秒钟之内)。
在错误消息中包括第一个路径(规范),以帮助发现 问题更快。现在显示
fatal: paths '@^ ...' with -a does not make sense
应该敲响警钟,因为显然不应考虑@ ^ 路径。