2011-08-03 7 views
22

を使用して、バージョン番号を追加することが可能であり、彼らはそれをやったコミットのようなレポの情報にアクセスするための素晴らしい小さなAPIを持って実現しました外部サイトにプロジェクトの以前のバージョンを表示する素晴らしい方法ですが、マスターコミットにバージョン番号を追加する既知の方法があるのだろうかと思いました。これは次のようになりますなど、</p> <p>私はGitHubのを使用しているgitの/ githubの

バージョン番号はマスターコミットごとに自動的に増加するか、手動で設定することができます。

私はメモに追加することができますが、それを分ける方法があれば私には分かりません。

+0

どのコミットにそれを追加します。

function git_func { GITBIN=/usr/bin/git if [[ $1 == "commit" ]] && [[ "$#" -ne 1 ]] then GIT_VERSION='$GITBIN rev-list HEAD | wc -l' let GIT_VERSION+=1 perl -e "s/(\d+\.\d+\.)\d+/\${1}$GIT_VERSION/;" -pi.save config.json rm config.json.save fi GITCMD="$GITBIN " for var in "[email protected]" do GITCMD="$GITCMD \"$var\"" done eval $GITCMD } alias git='git_func' 

config.jsonは、これが含まれていますか?表示目的のためだけの場合は、マスターの祖先(シェルの 'git rev-list HEAD | wc -l'などから)のコミット数をカウントアップして、表示します。 – jwodder

+0

十分です。私はこれについて考えました。しかし、私は何とかバージョンをバンプしたい時があるかもしれないと思っていた。私がどのように考えていたかについて... Githubには、コミットするときにgithubが見つけて対応する問題を閉じる "Closes#1"のようなテキストを追加できるという問題追跡があります。私は "バージョン0.01"を行うための秘密の方法があるかどうかわからず、それを探して、あとでAPIから取得できるマスターコミットにバージョン番号を追加してもらいました。 –

答えて

12

タグを使用してバージョン番号を設定できます。タグコマンドon the git tag man pageについて読むことができます。私はビルドサーバをセットアップして自動的にビルドバージョン番号をインクリメントし、タグを使って適用しました。私はこれがあなたのニーズを満たすだろうと思う?

+10

バージョン番号には、明確に定義されたパターンを使用することも検討する必要があります。 [Semantic Versioning](http://semver.org/)は良いものです。 – Tekkub

1

ほとんどの人はこれにgit-tagを使用します。

チェックアウトVagrant ...タグをスクロールすると、すべてのバージョンが表示されます。

14

ビルド番号とバージョン番号の2種類のタグがあります。バージョン番号は、製品出荷時に人がタグとして適用することができます。このタグは過去のものであり、重要なイベント(商品の出荷など)を特定します。

ビルド番号は、出発点を基準にしてどのビルドを行っているかを識別するのに便利です。 git-tagとgit-describeの組み合わせは、ビルドに組み込むことができるビルド番号を生成する素晴らしい手段を提供します。 git-describeはglobパターンで特定の前のタグを見つけることができます。

最初のパターンは、タグからのコミットの数であり、第二のパターンは、コミット現在のハッシュである
tagname-[0-9]+-g[0-9a-f]+ 

:gitの結果の記述はとしてフォーマットされます。これはビルド番号にうまくフォーマットできます。ハッシュ(少なくとも最初の7文字)を含めると、ビルドに関連する特定のコミットを簡単に識別できます。

たとえば、git describeはrelease-2.2-42-gd788e0eを返す可能性があります。これはrelease-2.2 build 42 (d788e0e)になるようにフォーマットすることができます。

+0

42はビルド番号ではなく、最後に見つかったタグ以降の変更の数だけです。 –

3

前述したように、git-tagコマンドをチェックすると、フックと組み合わせることができます。たとえば、マスターを押し出すなど、特定のことを自動的に更新します。私はこの使用してい

チェックアウトhttp://git-scm.com/book/en/Customizing-Git-Git-Hooks

+0

リンクは404'edです。 –

+1

git本の第7-3章への新しいリンク:http://git-scm.com/book/en/Customizing-Git-Git-Hooks – Simon

+0

ありがとう、私は編集します。 :) –

3

"version": "0.1.44" 
関連する問題