1

GoogleCodeのコーディングプロジェクトにGitを使用しています。

リビジョン番号を、そのような意味のあるものにするにはどうすればよいですAlpha v1.0か。r86d68838463ecf

4

4 に答える 4

6

すべてのgitcommitには、貼り付けたものと同様に、暗号的に安全なsha1タグが付与されます。特定のコミットにラベルを付ける場合は、gitタグを使用し、選択したラベルでコミットにタグを付ける必要があります。

git tag "Release 1.0" 1f42f25b0e

gitは配布されているため、すべての配布が相互に通信する必要がない限り、同期コミット番号(SVNなど)を使用する方法はありませんでした。さらに、コミット名の一意性を数学的に保証するには、十分に長い文字列が必要でした。これが、コミットの一意の名前としてsha1が使用される理由ですが、上部のタグを介してラベルを付けることができます。

于 2012-05-02T20:47:03.017 に答える
4

前述したように、Git で「きれいな」リビジョン番号をインクリメントする方法はありません。それと DVCS が必要な場合は、Mercurialを使用してください。ただし、Mercurial のインクリメント リビジョンはローカルの便宜上の表記に過ぎないことに注意してください。

git に関しては、バージョン番号付けスキームに影響を与えるべきではありません。うまくいけば正気な独自のバージョン番号スキームを作成し、それに応じてコミットにタグを付けることができます。たとえば、バージョン 1.0 になったら、コミットにタグを付けます。

$ git tag -a v1.0

これにより、注釈付きタグがHEADブランチの current に適用されます。何をしているのかわからない限り、この目的のために常に注釈付きタグを使用する必要があります。

これによりタグが作成され、次のように表示されgit describeます。

$ git describe
v1.0

ここで興味深いのは、別の何かをコミットしてタグを指していない場合です。次に、git describeまだ便利です:

$ git describe
v1.0-1-g9f52f48

これで、git describeタグ間の中間コミットの一意のわかりやすい識別子が提供されます。上記の表記は、最も近いタグ、それを超えるコミットの数、および記述されている実際のコミットの短いハッシュを示しています。

したがって、git describe注釈付きのタグ付けを使用することは、常に git で一意のバージョン番号を提供する簡単な方法であり、ビルド識別子として Subversion のリビジョンを使用するようなものに似ています。

于 2012-05-02T22:54:09.267 に答える
0

あなたはそれをするためにgit-tagを使うことができます。

git tag yourTag1.0 ed851a...<-The second param is the commit hash you want to tag

タグを表示するには、次のようにします

git log --decorate

あなたは次のようなものを得るかもしれません

commit ed851a7107f457935b0c6f75c4458116024a37e2 (HEAD, tag: myTag1.8, master)
Author: Jerry test <Jerry.test@test.com>
Date:   Wed May 2 16:47:11 2012 -0400

    testing
于 2012-05-02T20:49:49.957 に答える
0

Git リビジョン ID は 16 進数であるため、それを 10 進数に変換し (この例では 235880548024015 に解析されます)、ver.sub.rev.build バージョン管理スキームで使用できるビルド番号にモジュラス化できます。ただし、ベンが言ったように、これは SHA1 ハッシュです。そのため、入力の小さな変化が出力に大きな変化をもたらす「雪崩効果」の影響を受けます。そのため、リビジョンから生成されるビルド番号は連番ではありません。

于 2012-05-02T20:51:36.507 に答える