首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动执行git提交的vi / nano编辑器-修改

自动执行git提交的vi / nano编辑器-修改
EN

Stack Overflow用户
提问于 2013-12-30 13:04:24
回答 1查看 1.2K关注 0票数 2

基本上,我必须获取一个特定的提交,然后修改它的提交消息。因此,在cherrypick之后,我执行了git commit --amend,当编辑器(nano/vi)打开时,在中间添加一些文本,然后保存和退出。

我试图通过shell脚本修改.git/COMMIT_EDITMSG文件,但是它没有工作。我能够修改文件,但更改没有反映到git推送。:(

因此,我想在nano编辑器中打开一个文件,然后在文件之间添加几行,然后保存和退出

纳米编辑器

步骤1:保存(WriteOut) ctrl + o

步骤2:然后按Enter

第3步:出口(出口) ctrl + x

用于vi编辑器

步骤1::!wq:xshift + ZZ <you know how to save and exit>

我尝试过许多选项,比如通过python脚本调用vi/nano editor终端,但是没有帮助:

尝试从shell脚本和c语言中发送信号F2和F3给nano编辑器,但没有工作。

如何实现终端打开过程的自动化,然后写一些东西,保存和退出。

请帮我找到解决办法。

用于vi编辑器的[解决方案] ex

代码语言:javascript
复制
#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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-30 14:26:24

GIT_EDITOR环境变量指向进行必要提交消息更改的脚本。脚本将获得以当前提交消息(以及Git的帮助文本)作为第一个参数的文件路径。

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

代码语言:javascript
复制
#!/bin/sh

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

示例调用:

代码语言:javascript
复制
GIT_EDITOR=./patch-commit-message.sh git commit --amend
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20840164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档