我正在尝试创建git脚本,因为如果我忘记了一些东西,我会厌倦工作流程和随之而来的头痛。
我已经看过了
Paths with -a does not make sense for bash function
还有这个
git fatal error Path with a does not make sense
但是它们似乎都不适用于我,因为我的代码确实进行了修改,并且我的变量周围有字符串保护。
我认为这可能是我对bash缺乏了解的产物。
这是我尝试过的,
function push(){
BR=`branch | grep \* | cut -d ' ' -f2`
git commit -am "$BR" " $1"
git push origin "$BR"
}
第一行正在使用我拥有的另一个命令,该命令将git branch缩短为just branch,所以我不需要添加'git'
我还尝试过删除“ $ BR”周围的字符串,只是将其保留为$ BR,这给了我同样的错误。
我的提交错误
致命:带有-a的路径没有意义。
但是我知道我已经修改了已经由git跟踪的文件(通过运行git diff),所以对于为什么显示此文件有些困惑
当我尝试删除“ $ 1”并保持其他所有功能相同时,是否与我的实际提交消息有关?
答案 0 :(得分:1)
在查看git commit
(git help commit
)的文档时,添加-m
标志时,它期望下一个参数是提交消息。
-m <msg>, --message=<msg>
Use the given <msg> as the commit message. If multiple -m options are given, their values are concatenated as separate paragraphs.
因此,git commit -am "$BR" " $1"
是不正确的,因为它将把您的分支名称解释为提交消息,然后将所有剩余的args解释为某个路径说明符。
尝试以下方法:
function push(){
local br=`branch | grep \* | cut -d ' ' -f2`
git commit -a "$br" -m "$1"
git push origin "$br"
}
答案 1 :(得分:1)
您要将分支名称指定为提交消息,并将提交消息指定为文件名。 Git对您说“提交所有文件但仅提交此文件”这一事实做出了反应。
如果要同时指定分支名称和消息作为提交消息,则必须将它们作为单个参数传递:
mandelbrotCoord
答案 2 :(得分:0)
提交消息只是一个参数,因此请尝试以下操作:
git commit -am "$BR $1"