18

Pivotal Tracker と Github には優れた統合があります。セットアップが完了すると、Pivo​​tal Tracker ID がプレフィックスとして付けられた各コミットが、対応する Pivotal チケットの下に自動的に表示されます。次に例を示します。

git commit -am '[#1234567] my new changes'
git push origin

'my new changes' というコメントが 1234567 Pivotal チケットに github コミット リンクと共に自動的に追加されます。

ただし、毎回チケット ID を追加するのを忘れがちです。どのように簡素化/自動化できますか?

4

7 に答える 7

18

解決策は、Git-Hooks とフィーチャー ブランチを使用することです。(Github フローが推奨されます)。

この Git-Hook をインストールする必要があります (ファイルをローカル リポジトリにコピーします)。

https://github.com/ktamas77/git_hooks

特定の Pivotal チケットの作業を開始する前に、Pivo​​tal トラッカー ID を前に付けたブランチを作成します。次に例を示します。

git checkout 1234567_build_new_form

次に、通常どおりにすべての変更を追加します。

git commit -am 'form added'
git commit -am 'styles added'
git push origin

ご覧のとおり、git フック スクリプトは機能ブランチ名から Pivotal Tracker ID を自動的に抽出し、それを各コメントの先頭に追加します。必要に応じて、(別の ID で) 手動で上書きすることもできます。

このようにして、コミットごとに Pivotal ID を手動で追加することを心配する必要はありません。これらの GUI は標準の GIT ライブラリ/実行可能ファイルを使用しているため、GUI (GIT Tower など) でも動作します。

于 2012-12-14T22:46:29.453 に答える
4

Tamas のソリューションに基づく単純なシェル バージョンを次に示します。ブランチ名の末尾から ID を取得します。

"my-feature-branch-12345678" => "私のコミット メッセージ [#12345678]".

.git/hooks/prepare-commit-msg に移動し、実行可能にします。

#!/bin/bash
if story_id=`git branch | grep -oP '^\*.*\-\K[0-9]+$'`
then
  echo "[#$story_id]" >> "$1"
fi
于 2013-04-17T13:20:18.233 に答える
3

私のチームは を使用してgit_trackerいます。各開発者は実行する必要があります

$ git tracker init

Pivotal Tracker のすべてのプロジェクトに 1 回。次に、それぞれの新しいブランチに、Pivo​​tal Tracker のストーリー ID を末尾に付けて、特別な規則で名前を付ける必要があります。例えば:

$ git checkout -b the-great-feathure-123456789

ここで、123456789 は Pivotal Tracker のストーリー ID になります。

これで、ストーリーを参照する各コミットが自動的に作成されます。おまけに、GitHub を使用してプル リクエストを実行する場合、ストーリーをマージするレビュアーにマージ コミットに追加するよう依頼できます。

[Fixes #123456789] ...

この方法では、Finishボタンをクリックする必要はありません。GitHub がそれを行います。

于 2014-04-02T08:46:49.833 に答える
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このコードは、フック内の他のコードの前に追加するのがおそらく最善であることに注意してください。これにより、自動マージなどでさえ、すべてのコミットが先頭に追加されることになります。

お役に立てれば!

于 2014-05-23T15:08:40.410 に答える
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(-)
于 2015-02-06T16:40:22.310 に答える