基本上,我必须获取一个特定的提交,然后修改它的提交消息。因此,在cherrypick之后,我执行了git commit --amend,当编辑器(nano/vi)打开时,在中间添加一些文本,然后保存和退出。
我试图通过shell脚本修改.git/COMMIT_EDITMSG文件,但是它没有工作。我能够修改文件,但更改没有反映到git推送。:(
因此,我想在nano编辑器中打开一个文件,然后在文件之间添加几行,然后保存和退出
纳米编辑器
步骤1:保存(WriteOut) ctrl + o和
步骤2:然后按Enter
第3步:出口(出口) ctrl + x
用于vi编辑器
步骤1::!wq或:x或shift + ZZ <you know how to save and exit>
我尝试过许多选项,比如通过python脚本调用vi/nano editor终端,但是没有帮助:
尝试从shell脚本和c语言中发送信号F2和F3给nano编辑器,但没有工作。
如何实现终端打开过程的自动化,然后写一些东西,保存和退出。
请帮我找到解决办法。
用于vi编辑器的[解决方案] ex
#addTextHelper.sh
#!/bin/bash
ex $1 <<EOEX
:%s/$string_to_replace/$string_to_replace_with/g
:x
EOEX
#addText.sh
GIT_EDITOR=./addText_Helper.sh git commit --amend发布于 2013-12-30 14:26:24
将GIT_EDITOR环境变量指向进行必要提交消息更改的脚本。脚本将获得以当前提交消息(以及Git的帮助文本)作为第一个参数的文件路径。
使用ed在第一行空白行之后添加一行的示例脚本:
#!/bin/sh
ed $1 <<EOT
/^$
a
Extra text goes here.
.
wq
EOT示例调用:
GIT_EDITOR=./patch-commit-message.sh git commit --amendhttps://stackoverflow.com/questions/20840164
复制相似问题