我是bash脚本的新手,我正在尝试编写一个添加,提交和推送到存储库中的脚本
commit_message="$1"
git add . -A
git commit -m "$commit_message"
git push
这会将所有已编辑/新文件添加到我的存储库中,是否可以通过将所需文件名作为执行此脚本的参数的方式传递? 我从Google那里获得了此脚本,但是如果还有其他方法可以实现,请告诉我。
答案 0 :(得分:2)
为方便起见,我使用了一个功能。它适用于我的编码风格,这对我来说意味着始终在回购根目录下的干净目录中工作,并使用相对路径访问所有文件。 YMMV。
qp() {
[[ -z "$1" ]] && echo "Please enter a commit message:";
typeset msg="$( [[ -n "$1" ]] && echo "$*" || echo $(head -1) )";
date;
git pull;
git add .;
git commit -m "$msg";
git push;
date
}
像这样称呼它-
qp add a commit message
请注意,它将所有参数统一为一个msg
,如果没有得到则提示输入一个参数。
$: qp
Please enter a commit message:
foo bar baz
Tue, Mar 19, 2019 3:25:24 PM
Already up-to-date.
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
Everything up-to-date
Tue, Mar 19, 2019 3:25:31 PM
您的要求:
将其重写以获取文件列表,并始终询问消息,如下所示:
qp() {
echo "Please enter a commit message:";
typeset msg="$( head -1 )";
date;
git pull;
git add "$@";
git commit -m "$msg";
git push;
date
}
您可以根据需要将功能代码放入具有或不具有功能的脚本中。
然后以
运行qp file1 file2 fileN
,它将要求提交消息-或者,将第一个参数设为提交消息,如下所示:
qp() {
typeset msg="$1";
shift;
date;
git pull;
git add "$@";
git commit -m "$msg";
git push;
date
}
只需确保您“ quote” 首先提交消息参数即可。 ;)
qp "here's my commit message" file1 file2 fileN