繁体   English   中英

使用父提交的文本开始 git commit 的文本

[英]Start text of git commit with the text of the parent commit

当您在 git 中创建新提交时,您可以通过指定git commit -t <filename>commit.template环境变量来指定您希望提交消息编辑器以文件内容启动。 有没有办法指定您始终希望使用父提交的全文作为模板?

上下文:与许多其他代码库一样,我通常的代码库需要对提交所处理的错误/问题进行注释,以便在每次提交中出现。 记住错误/问题编号很困难,而且我经常有一堆关于同一主题的提交,要按顺序提交。 使用像git commit; Ctrl+Z; g log -1; <click>; Shift+Ctrl+C; fg; Shift+Ctrl+V这样的咒语很尴尬git commit; Ctrl+Z; g log -1; <click>; Shift+Ctrl+C; fg; Shift+Ctrl+V git commit; Ctrl+Z; g log -1; <click>; Shift+Ctrl+C; fg; Shift+Ctrl+V git commit; Ctrl+Z; g log -1; <click>; Shift+Ctrl+C; fg; Shift+Ctrl+V ,这是我通常被迫做的。

你应该只需要运行:

git commit -C HEAD --reset-author -e

或更一般地说:

git commit -C $TEMPLATE_COMMIT_SHA1 --reset-author -e

相关的在线文档项目是:

如果你想让这个命令更实用,例如通过依赖一个 env。 变量TEMPLATE_COMMIT_SHA1 ,您可以定义一个 git 别名,例如:

# "committ" stands for "commit-template"
git config alias.committ '!f(){ set -x; git commit -C "${TEMPLATE_COMMIT_SHA1:-HEAD}" --reset-author -e "$@"; }; f'

# or if you prefer to make this alias available for all repos:
git config --global alias.committ '!f(){ set -x; git commit -C "${TEMPLATE_COMMIT_SHA1:-HEAD}" --reset-author -e "$@"; }; f'

# demo
touch a; git add a; git committ

export TEMPLATE_COMMIT_SHA1=HEAD^^^
touch b; git add b; git committ

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM