[英]How can I get a modified version of the current branch name as my commit message in .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
嘗試這個 -
$: xmp() { git commit -m "$(git branch | sed -n '/^[*] / { s/^[*] \(.*\)/\1/; s,/,:,; s/-/ /g; p; }') $@"; }
那么您可以像提交一樣使用它。
$: xmp
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
$: touch foo
$: git add foo
$: xmp
[master ac63834] master -
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 foo
$: git rm foo
rm 'foo'
$: xmp testing
[master ade608b] master - testing
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 foo
$: git log
commit ade608b32e45d586e6a72275939df12f4f50ee11 (HEAD -> master)
Author: Paul Hodges <Paul.Hodges@charter.com>
Date: Wed Apr 24 16:29:56 2019 -0500
master - testing
commit ac638346981b3104cb5185d5240fe218e827504a
Author: Paul Hodges <Paul.Hodges@charter.com>
Date: Wed Apr 24 16:29:33 2019 -0500
master -
不過,我會選擇一個更好的名字。 ;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.