繁体   English   中英

使用bash / shell脚本添加和提交的Git命令

[英]Git commands for adding and commiting using bash/shell script

我是bash脚本的新手,我正在尝试编写一个脚本,该脚本将添加,提交和推送到存储库中

commit_message="$1"
git add . -A
git commit -m "$commit_message"
git push

这会将所有编辑过的文件/新文件添加到我的存储库中,是否可以将所需文件名作为执行此脚本的参数传递? 我是从Google获得此脚本的,但是如果还有其他方法可以实现,请告诉我。

为了方便起见,我使用了一个函数。 它适用于我的编码风格,这对我来说意味着始终在回购根目录下的干净目录中工作,并使用相对路径访问所有文件。 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
}

只要确保您“引用”第一个提交消息参数即可。 ;)

qp "here's my commit message" file1 file2 fileN

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM