bash - 如何在 .bashrc 中获取当前分支名称的修改版本作为我的提交消息?
问题描述
假设我的当前分支为STACK-123/this-is-my-branch
. 在我的 .bashrc 文件中,如何运行一个函数以使提交消息成为分支名称的修改版本。假设我有别名branch-to-commit-alias
:
$: branch-to-commit-alias
$: git log
Author: me
Date: <todays date>
STACK-123: This is my branch
解决方案
此 shell 函数仅STACK 123: this is my branch
根据分支名称为您提供提交消息。
branch-to-commit-alias () {
local msg=$(git rev-parse --abbrev-ref HEAD | sed 's|/|: |; s|-| |g')
git commit -m "$msg"
}
但是:隐藏git commit
在这样的函数中也会隐藏您可能想要添加到的任何选项git commit
。
更灵活的方法是 git-hooks(请参阅 参考资料git help hooks
):您可以将逻辑移动到prepare-commit-msg
. 这个钩子将准备你在编辑器中看到的消息。您可以使用更多信息编辑该消息,或者只是退出编辑器并完成。
为此,将此脚本写入.git/hooks/prepare-commit-msg
:
#!/bin/sh
mv "$1" "$1.bak"
(
git rev-parse --abbrev-ref HEAD | sed 's|/|: |; s|-| |g'
cat "$1.bak"
) > "$1"
并使其可执行:
chmod +x .git/hooks/prepare-commit-msg
推荐阅读
- php - 验证用户输入的 if 语句
- c# - 用户未处理参数超出范围异常
- php - 使用 php 添加和更新表
- r - 用于不同几何形状的两种色标
- python - 从还提到卧室数量的字符串中提取平方米的最佳方法是什么?
- javascript - 在 MongoDB 中如何知道它是否是集合的最后一条记录?
- react-native - 在 react-native 中使用 FlatList 时数据未呈现
- mysql - MYSQL索引rownum倒序
- javascript - Three.js OnDocumentMouseDown 不支持触摸屏?
- python - 如何制作具有透明面和不透明边缘的 bar3d 图?