我希望编写一个简单的git脚本,它将运行以下行:
cd <the name of my git repo>
git add *
git add -u
git commit -m "<my comment in the form of a string>"
git push origin master
我是bash脚本的新手,所以这对我来说有点问题。我现有的尝试如下:
#!/bin/sh
cd <my repo name which has no have any spaces>
git add *
git add -u
git commit -m $*
git push origin master
我不太知道如何使用引号括起来引入正确的字符串参数。我目前尝试运行这样的程序:
autogit.sh "Example comment."
如何更改我的脚本以使其适用于多字提交注释?
答案 0 :(得分:5)
这里最快的答案是在你的脚本中,提交行应该是
git commit -m "$*"
答案 1 :(得分:3)
以下是我的git别名可以帮助你的几个例子。我正在做类似的事情。
http://lukas.zapletalovi.com/2011/04/my-git-aliases.html
例如:
rem = !sh -c 'test "$#" = 1 && git h && git checkout master && git pull && git checkout \"$1\" && git rebase master && git checkout master && git merge \"$1\" && echo Done and ready to do: git pom && exit 0 || echo \"usage: git rem \" >&2 && exit 1' -
# git rem
usage: git rem ...
# git rem my_branch
...
它需要一个参数,所有命令都与&amp;&amp;和如果链中的任何命令(例如合并)失败,它会立即停止并显示错误代码1。祝你好运。
答案 2 :(得分:3)
Bash执行字符串插值。如果替换
行,您的脚本应该没问题git commit -m $*
与
git commit -m "$*"
答案 3 :(得分:2)
git commit -m "$*"
应该为你做。