2011-06-14 65 views
3

我一直发现自己忘了裁判#ticket添加到我的提交。这是一个痛苦。我通常每张票至少使用一个分支,或者至少,一张票可能有多个分支,但通常不是相反的。自动化git的承诺消息每个分支

所以我是像添加branch.ticket配置选项的思维,然后从可能取回准备提交 - 味精和前面加上“#裁判”给我留言。也许在此之后

做,甚至加入了钩或别名要求一个#ticket当我创建一个新的分支。

有人可以帮助我建立这些?我在git上相当新,也不是bash guru,但是如果指向正确的方向,我可以弄明白。

到现在为止,我收集我要叫

git config --add branch.<branchname>.ticket <ticketnumber> 

,然后像做

prepend `git config branch<branchname>.ticket` $file 

基本。我认为。 任何人都可以证实这一点?并告诉我如何获得< branchname>?

+0

不是一个真正的答案,但我喜欢git让你修改前一个提交的方式,以防忘记或错误输入某些内容(如提交消息)。 – Thilo 2011-06-14 00:25:02

回答

0

有这个钩子拿到最后一部分,不只是这一点,更容易比我的计划,因为它只是使用该分支机构的名称作为一个票号,所以没必要设置一个变量:

http://henrik.nyh.se/2009/09/git-hook-to-auto-reference-tickets-from-the-branchname

之所以这么说,是第一线

#!/usr/bin/env ruby 

提醒我,我可以在Python写了这一点。当然Ruby,perl和bash更适合这个任务

+1

该链接已过期。这里是最近的:http://thepugautomatic.com/2009/09/git-hook-to-auto-reference-tickets-from-the-branchname/ – 2015-03-13 20:41:16

2

这听起来不错。您可以使用git symbolic-ref HEAD获取当前分支名称(如果有)。

你可能想切断/refs/heads/。我在我的提示脚本中使用了这个:

local branchname=$(timeout 1s git symbolic-ref HEAD 2> /dev/null | cut -b 12-) 

然后检查是否为空字符串。

+0

你能解释一下,还是指出我在哪里得到那个-b 12-切参数的解释? – Lacrymology 2011-06-14 02:45:33

+1

'cut -b 12-'忽略输入的前12个字节 – bbaja42 2011-06-14 05:54:58

+0

这就是我认为的......是不是有点限制?分支syimref名称不能不同吗? – Lacrymology 2011-06-15 11:56:34

0

你在正确的轨道,我相信

有很多方法来获得当前分支:

git branch | grep '^*' |sed s/\*\ // 

或者使用git symbolic-ref HEAD/