Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


サイドバー

メインメニュー

XAMPP アレンジ

IED

WSL2

道具箱

リポジトリ編

フレームワーク編

公開ソフトウェア

メタ
リンク


このページへのアクセス
今日: 1 / 昨日: 5
総計: 6620

github:release

GitHub タグとリリースの作成

y2sunlight 2020-07-02

GitHub に戻る

本章は、「GitHub Eclipseによるブランチの操作」の続編です。今回はEclipseによるタグの作成と、GitHubによるリリースの作成について説明します。タグの作成に関しては、社内のGitサーバーをご利用の場合もEclipseの操作は同じだと思います。

タグはGitの機能で、コミットに付けられた名前です。Gitのコミットはハッシュ値によって識別されますが、タグはこのハッシュ値の別名と考えると分かり易いかもしれません。Gitから必要なバージョンを取得するにるには、ブランチやタグ(またはコミットハッシュ値)が使用できます。GitHubではタグの付け方は、セマンティック バージョニングに準拠することが推奨されています。

一方、リリースの方はGitHubの機能です。リリースは、ソフトウェア、リリースノート、バイナリファイルへのリンクをパッケージ化してユーザが利用しやすくする為のもので、アジャイル開発的には、繰り返し行われる一連の短い開発工程の成果物をパッケージ化して、デプロイ可能なソフトウェアのイテレーションを提供する機能であるとも言えます。

GitHubではリリース作成時、タグを指定するようになっているので、リリースを作成する前に、コミットにタグを付ける必要があります。タグの作成は、Gitクライアント(Eclipse)だけでなく、GitHubからもリリース作成時に同時にタグを作成できます。

本章の前提は、前章と同じで、GitHubのアカウントと以下のクライアント環境が必要です。GitクライアントにはEclipseを使用します。

クライアント環境

  • Windows10 Pro
  • Eclipse 2019-12 Version 4.14

関連記事

リンク


前提条件

ここでの説明は前章から続いており、Eclipseによるタグの作成方法を述べる前に、前提となるリポジトリとブランチの条件を記載しておきます。

Gitサーバ( GitHub )に作成済のリポジトリとブランチは以下の通りです:

  • リポジトリ:hello-world
    • ブランチ: 4 branches
      • master — マスターブランチ
      • その他に作業済のブランチが3つあります

Gitクライアントは、Eclipseで、プロジェクト名は hello-world です。Eclipse側(ローカルリポジトリ)には以下のブランチがあります。

【 ローカルリポジトリ(Eclipse) 】

  • リポジトリ:hello-world
    • ローカル・ブランチ
      • master — マスターブランチ
    • リモート・トラッキング
      • origin/master — masterのリモート追跡ブランチ


タグ

Gitのタグは以下の2種類があります。

  • 注釈付きのタグ — Annotated 
    チェックサムが付き、タグを作成した人の情報(名前、メールアドレス)、作成日時、注釈が保持されます。 これは、主にリモートブランチでリリース情報の一部として利用されます。
  • 軽量版のタグ — Lightweight
    コミットとの関連付けを保持するだけのタグで、それ以上の情報は保持されません。これは、主にローカールブランチでコミットの名前付けの為に利用されます。

どちらの種類のタグにも(通常は注釈付きのタグに対して)、GPG秘密鍵による署名をすることができます。

Eclipse(Egitプラグイン)では、注釈付きのタグのみサポートされています。また、タグへの署名機能はありません。注釈付きのタグに署名を行うには、GitHubのタグへの署名機能を使用できます。

本節では、Eclipseからのタグの作成とGitHubへのタグのプッシュについて説明しますが、GitHubではリリース作成時に同時にタグを作成できます。リリース用のタグは、GitクライアントではなくGitHubで作成する方が良いように思います。必要に応じて使い分けて下さい。


Eclipseでのタグの作成

Eclipseの[プロジェクト・エクスプローラー]でプロジェクト(hello-world)を右クリックし、[チーム][拡張][タグの作成…]を選択して下さい。

■ [タグ名]を入力します。

ここではセマンティック バージョニングに準じたバージョン番号を入力しています。
GitHubでタグ付けされたバージョンをリリースするには、セマンティック バージョニングに準じたバージョン番号を付与し、されに先頭に v の文字を付けなければなりません。例)v1.0.0

■ [Tag Message]を入力します。
■ [拡張]をクリックして、タグ付けするコミットを選択します。
■ [タグを作成してプッシュ開始…]ボタンを押して下さい。

タグの作成またはプッシュ(新規、編集)は[Gitリポジトリー]ビューからもできます。[Gitリポジトリ]を表示するには、Eclipse メニューの[ウインドウ][ビューの表示][その他]から[Git][Gitリポジトリー]を選択して下さい。

■ プッシュするタグをチェックします。
■ [次へ]ボタンを押して下さい。

■ プッシュ内容を確認します。
■ [完了]ボタンを押して下さい。

■ タグのプッシュが終わりました。
■ [閉じる]ボタンを押して下さい。


プッシュしたタグの表示

リポジトリ hello-world に移動します。まだ表示していない場合は、ダッシュボードの左サイドバーから hello-world を選択して下さい。

■ ファイルリスト上のタグ数が [0 tags] から [1 tag] に変わっています。
■ また、右サイドの[Releases]にもタグ数が表示されています。
■ タグ数(ここでは[1 tag])をクリックして下さい。

■ タグの一覧が表示されます。
■ ここから、アーカーブ( zip, tar.zg )がダウンロード出来ます。
■ このようにタグをプッシュすると自動的に、そのタグのアーカーブがダウンロードできるようになります。
■ バージョン番号( ここでは v1.0.0 )をクリックして下さい。

■ タグの編集画面が表示されます。
■ 編集するには[Edit]ボタンを、削除するには[Delete]ボタンを押して下さい。

ここでの編集はタグからリリースを作成する意味になります。タグのメッセージが編集できるわけではありません。編集画面については、以下のリリースの編集を参照して下さい。


リリース

リリースの作成

リポジトリ hello-world に移動します。まだ表示していない場合は、ダッシュボードの左サイドバーから hello-world を選択して下さい。

■ 右サイドの [Releases] 下の [Create a new release] をクリックします。

■ [Tag version]を入力します( ここでは先に作成してプッシュした v1.0.0 )。

ここで新しいTag versionを入力すると、新しいタグが生成されます。リリース用のタグは、筆者的には、GitクライアントではなくGitHub(この画面)で作成する方が良いように思います。本章では、Eclipseでの操作も紹介する為に、Eclipseでタグを作成しています。

■ [Release title]を入力します。
■ [Describe this release]を入力します。

■ オプションで、コンパイルされたプログラムなどのバイナリファイルを添付する場合は、[Attach binaries by dropping them here or selecting them]を押してファイルを選択して下さい。
■ このリリースを非製品版(プレリリース)として通知する場合は、[This is a pre-release] を選択します。

■ 全ての入力が終わったら 緑色の[Publish release]ボタンを押して下さい。

■ リリースが完了すると上の画面が表示されます。


リリースの編集

リポジトリ hello-world のメインページに移動します。

■ 右サイドの[Releases]をクリックします。

■ リリースの一覧が表示されます。
■ 目的のリリースのタイトル( ここでは First Release )をクリックします。

画面右の[Edit]ボタンを押すと直接リリース編集画面に進みます。

■ [Edit release]ボタンを押します。

[Delete]ボタンを押すとリリースを削除できます。

■ リリースのタイトルや説明を編集することができます。

■ 編集が終わったら、緑色の[Update release]ボタンを押して下さい。


コメント

コメントを入力. Wiki文法が有効です:
 
github/release.txt · 最終更新: 2020/07/16 15:47 by y2sunlight