为git commit --amend自动化vi / nano编辑器

时间:2013-12-30 13:04:24

标签: python c git shell

基本上我必须获取特定的提交然后修改它的提交消息。所以cherrypick git commit --amend完成(nano/vi)后,当编辑.git/COMMIT_EDITMSG打开时,会在其间添加一些文字并保存&出口。

我尝试通过shell脚本修改nano文件,但它不起作用。我能够修改文件,但更改没有反映到git push。 :(

所以我想在ctrl + o编辑器中打开一个文件然后在文件之间添加几行然后保存并退出

纳米编辑器 第1步:保存(WriteOut)Enter
第2步:按ctrl + x然后按
第3步:退出(退出):!wq

for vi editor
第1步::xshift + ZZ<you know how to save and exit> vi/nano editor

我尝试了许多选项,比如通过python脚本调用#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 终端但没有帮助:(。
尝试从shell脚本发送信号F2和F3用于nano编辑器,c语言不起作用。

如何在终端中自动打开这个过程然后写点东西并保存&amp;出口。

请帮我解决问题。

[[溶液]] ex for vi editor

{{1}}

1 个答案:

答案 0 :(得分:3)

GIT_EDITOR环境变量指向一个脚本,该脚本会更改必要的提交消息。该脚本将获取具有当前提交消息(和Git的帮助文本)的文件的路径作为第一个参数。

使用ed在第一个空行后添加一行的示例脚本:

#!/bin/sh

ed $1 <<EOT
/^$
a
Extra text goes here.
.
wq
EOT

示例调用:

GIT_EDITOR=./patch-commit-message.sh git commit --amend