2011-06-14 67 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/