Pivotal Tracker和Github有很好的集成:一旦设置完成,每个以Pivotal Tracker ID为前缀的提交将自动显示在相应的Pivotal Ticket下,例如:
git commit -am '[#1234567] my new changes'
git push origin
将使用github提交链接自动将注释'my new changes'添加到1234567 Pivotal Ticket中。
但是,每次都很容易忘记添加票证ID。怎么可以简化/自动化?
答案 0 :(得分:18)
解决方案是使用Git-Hooks和功能分支。 (建议使用Github-flow。)
您必须安装此Git-Hook(将文件复制到本地存储库):
https://github.com/ktamas77/git_hooks
在开始处理特定的Pivotal Ticket之前,您需要创建一个以Pivotal Tracker ID为前缀的分支,例如:
git checkout 1234567_build_new_form
然后按正常方式添加所有更改:
git commit -am 'form added'
git commit -am 'styles added'
git push origin
你会看到,git hook脚本会自动从功能分支名称中提取Pivotal Tracker ID,并将其添加到每个注释的前面。如果需要,您仍然可以手动覆盖它(使用其他ID)。
通过这种方式,您不必担心每次提交都手动添加Pivotal ID。它也适用于GUIS(例如GIT Tower),因为这些GUI使用标准的GIT库/可执行文件。
答案 1 :(得分:4)
这是一个基于Tamas解决方案的简单shell版本。它从分支名称的末尾获取ID。
“my-feature-branch-12345678”=> “我的承诺mssg [#12345678]”。
移至.git / hooks / prepare-commit-msg并使其可执行:
#!/bin/bash
if story_id=`git branch | grep -oP '^\*.*\-\K[0-9]+$'`
then
echo "[#$story_id]" >> "$1"
fi
答案 2 :(得分:4)
安装'git-pivotal-tracker-integration'gem,https://github.com/nebhale/git-pivotal-tracker-integration
它向Git添加命令,如Git的开头和结尾,自动为分支和提交添加跟踪器故事ID,并将提交消息发布到跟踪器。当你打电话给'git start'时,它会拉主人以确保你是最新的,为你创建一个分支,并为你在跟踪器中启动故事。然后工作然后调用'git finish',它会将你的分支合并回主控和更新跟踪器。
答案 3 :(得分:3)
我的团队正在使用git_tracker
。每个开发人员必须运行
$ git tracker init
Pivotal Tracker上的每个项目一次。然后,他们需要使用特殊约定命名每个新分支,并使用Pivotal Tracker故事ID作为后缀。例如:
$ git checkout -b the-great-feathure-123456789
其中123456789将成为Pivotal Tracker故事ID。
在这里,你会自动让每个提交参考故事。奖励点,如果您使用GitHub执行拉取请求,您可以要求合并故事的审阅者添加到合并提交中:
[Fixes #123456789] ...
这样,您就不必点击Finish
按钮,GitHub会为您完成。
答案 4 :(得分:0)
答案 5 :(得分:0)
迟到的评论,但可能仍然是一个有用的评论。我想要@Sjoerd提供的相同解决方案,但我是一个mac用户;)
结果代码如下所示;
story_id=`git symbolic-ref --short -q HEAD | grep -o "^[[:digit:]]*"`
if [ ! -z "$story_id" -a "$story_id" != " " ]
then
echo "[#$story_id] $(cat $1)" > "$1"
fi
请注意,我们将问题ID添加到分支名称,但修改正则表达式以匹配字符串的结尾非常基本,而不是开头。我们还将问题ID添加到注释的开头,因为这在git日志中提供了更清晰的概述。如果上述脚本是ues,则每个提交消息都将以[#<issue ID>]
为前缀,除非分支名称不以实际问题ID开头。
应该注意的是,如果在prepare-commit-msg
钩子中的任何其他代码之前添加此代码可能是最好的,因为这将导致所有提交被预先添加,甚至自动合并等。
希望这有帮助!
答案 6 :(得分:0)
这是一个完全符合你想要的宝石:
http://github.com/bogdan/git-storyid
它允许从一个精美的菜单中选择一个故事:
[1] Removing Billing Page
[2] Welcome Email
[3] Tag campaign insertion points and campaigns with an identifier
Indexes(csv): 3
[campaign-tags 3020407] [#44116647] Initial implementation of campaign tags
1 file changed, 101 insertion(+), 2 deletions(-)