我正在编写一个bash脚本来添加、提交、推送一个目录中的所有文件。
#!/bin/bash
git add .
read -p "Commit description: " desc
git commit -m $desc
git push origin master
我得到以下错误:
$ ./togithub
Commit description:
test commit script
error: pathspec 'commit' did not match any file(s) known to git.
error: pathspec 'script"' did not match any file(s) known to git.
Everything up-to-date
我不确定这是读入文本(it echo
很好)还是传递给git commit -m
的问题。
发布于 2011-12-13 08:27:27
你需要做的是:
git commit -m "$desc"
在当前脚本中,test
将作为提交消息,而commit
和script
将被视为下一个参数。
发布于 2012-04-01 10:22:47
以下是最后两个答案的合并-将add -u链接在一起很棒,但嵌入式read命令给我带来了麻烦。我选择了(我的heroku推送的最后一行,如果这是你的方法,改成'git push origin head‘):
#!/bin/bash
read -p "Commit description: " desc
git add . && \
git add -u && \
git commit -m "$desc" && \
git push heroku master
发布于 2011-12-13 08:42:13
从索引中删除实际已删除的文件是很有帮助的。git add -u
会处理这件事。此外,您可能需要考虑将这些命令链接在一起,如下所示:
git add . && \
git add -u && \
git commit -m "$(read -p 'Commit description: ')" && \
git push origin HEAD
如果任何命令失败,它将停止评估其余命令。
只是思考的食物(未经测试的食物)。
谢谢!
https://stackoverflow.com/questions/8482843
复制相似问题