bash - 尝试创建 bash 脚本时出现 git 错误“致命:带有 -a 的路径没有意义。”
问题描述
我正在尝试创建一个 git 脚本,因为如果我忘记了某些东西,我会厌倦工作流程和头痛。
我看过这个
和这个
但它们似乎都不适用于我,因为我的代码确实修改了更改,而且我的变量周围确实有一个字符串保护。
我认为这可能是我对 bash 不熟悉的产物。
这是我试过的
function push(){
BR=`branch | grep \* | cut -d ' ' -f2`
git commit -am "$BR" " $1"
git push origin "$BR"
}
第一行是使用另一个命令将 git branch 缩短为分支,所以我不需要添加 'git'
我还尝试删除“$BR”周围的字符串并将其保留为 $BR,这给了我同样的错误。
我收到一个错误的提交,上面写着
致命的:带有 -a 的路径没有意义。
但我知道我已经修改了 git 已经跟踪的文件(通过运行 git diff)所以我有点困惑为什么会出现
当我尝试删除“ $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"
这是不正确的,因为它会将您的分支名称解释为提交消息,然后将所有剩余的参数解释为某个路径说明符。
试试这个:
function push(){
local br=`branch | grep \* | cut -d ' ' -f2`
git commit -a "$br" -m "$1"
git push origin "$br"
}
推荐阅读
- java - 为什么我在 POST 上收到 500 服务器错误?
- java - Java套接字:获取客户端外部IP
- php - mysql从与其他表相关的表返回结果
- python - AttributeError:'Recognizer' 对象没有属性'recognize_azure'
- c# - POST 方法不生成新行
- ascii - 是否可以在 Flowgarithm 中添加换行符?
- jmeter - jmeter中的Loadrunner web_custom_request模拟
- javascript - 从 Iterable 的 Promise 创建的 RxJs Observable 不会在每次迭代时更新值
- python - 如何根据多个条件更改列的一部分中的值?
- excel - 当我没有选择多个范围时,为什么会收到运行时间错误 1004?