我的脚本如下所示:
branch_name=$1
declare -a instances=("w-instance.eu" "x-instance.eu" "y-instance.eu" "z-instance.org")
for instance in "${instances[@]}"
do
cd "/home/ubuntu/$instance/mbf"
git checkout "$branch_name"
git pull origin "$branch_name"
python manage.py collectstatic --noinput
python manage.py migrate
sudo apachectl restart
done
我这样运行:
bash pull_merge_restart.sh some_branch
当我在脚本中明确设置分支名称时,git没有提示我关于合并的注释。现在它打开nano
并显示:
Merge branch 'production' of github.com:andilabs/xyz into production
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
如何强制git使用默认消息,以便脚本自动运行而不会因人为干扰而中断?
答案 0 :(得分:2)
来自git-pull
:
- 编辑
-e
--no编辑在提交成功的机械合并之前调用编辑器以进一步编辑自动生成的合并消息,以便用户可以解释并证明合并。 --no-edit选项可用于接受自动生成的消息(通常不鼓励这样做)。
较旧的脚本可能取决于不允许用户编辑合并日志消息的历史行为。他们会在运行git merge时看到一个编辑器打开。为了更容易地将这些脚本调整为更新的行为,环境变量GIT_MERGE_AUTOEDIT可以在它们的开头设置为no。