我经常需要用当前的master更新我的远程分支。我正在尝试自动化这一点,就像;
#!/usr/bin/env bash
cd directory
git checkout master
git pull
git checkout <remote_branch>
git pull origin <remote_branch>
git merge master
git push但是当我合并master时,我被抛到我的编辑器中,在那里我需要:wq才能推送。如何在我的Bash脚本中复制此:wq?
发布于 2020-08-04 14:46:56
下面列出了3种方法,您不必复制:wq即可做到这一点。
1-使用--no-edit
使用--no-edit选项,自动生成的消息将被接受(通常不鼓励这样做,请参阅git docs)
所以在git pull origin <remote_branch>之后,您可以使用
git merge master --no-edit2-使用环境变量
较旧的脚本可能取决于不允许用户编辑合并日志消息的历史行为。当他们运行git merge时,他们会看到一个打开的编辑器。为了更容易地调整这些脚本以适应更新后的行为,可以在脚本的开头将环境变量
GIT_MERGE_AUTOEDIT设置为no。- git docs
使用
GIT_MERGE_AUTOEDIT=no在合并行之前
3-使用-m提供消息
设置用于合并提交的提交消息(如果创建了一个)。
如果指定了--log,则要合并的提交的简短日志将附加到指定的消息中。
可以使用git fmt-merge-msg命令为自动git合并调用提供良好的默认值。自动消息可以包括分支描述。- git docs
git merge master -m "Merge master"https://stackoverflow.com/questions/63241071
复制相似问题