コンテンツにスキップ
GitTree

レッスン 14 · 日常の仕事

タグ、注釈、リリースの命名

検査されたメインコミットでアノテーション付きの v0.1.0 を作成し、そのタグのみをローカルオリジンにプッシュします。タグ オブジェクトをブランチ、署名、およびホストされたリリースから区別します。

このブラウザに進行状況が保存されました。

再生すると、YouTube からビデオが読み込まれます (プライバシー強化モード)。

英語ナレーション · English and Arabic 件のキャプション

動画ページを開くYouTubeで見る

何を学ぶか

  • 意図的なメッセージを含む注釈付きタグを作成します。
  • タグオブジェクトとピールされたコミットを個別に検証します。
  • すべてのタグを公開せずに、1 つの明示的なタグをプッシュします。
  • タグの作成はホストされたリリースとは区別してください。

始める前に

レッスン 13 が終了したところから開始します。メイン/H7 クリーン、サーバー メイン H7、F1 で公開された機能。 v0.1.0 タグは存在しません。ローカル デモ タグ署名は明示的に要求されません。

動画は、Ubuntu 24.04 の Git 2.52.0 と GitTree 2.0 を使用して録画されました。タグは作成され、アプリにプッシュされました。以前の状態、拒否された重複名、およびチェックがターミナルで実行されました。 macOS または Windows では何も実行されず、記録された Linux システムは Ubuntu だけです。 GitTree のソース Git フロアは 2.39.0 です。

GitTree はサインインを求めます。無料プランでは、ここでのすべてのステップがカバーされます。プロバイダー アカウント、プロ/トライアル、API 認証情報、インターネット サービスは必要ありません。ローカルのベアオリジンは GitLab または CI ではありません。すべてのアイデンティティは example.com を使用します。このレッスンをソース チェックアウト内で実行しないでください。

両方を連続してではなく、同一の入力で GitTree またはネイティブ パスのいずれかを介してミューテーションを作成します。読み取り専用検証はどちらの後にも続きます。最終的な作業として説明される準備はすべて、ネイティブの準備としてラベル付けされており、決して発明されたアプリの機能ではありません。

概念と状態の効果

通常、ブランチはコミットとともに進みます。リリースタグは意図的に安定した名前です。軽量タグはオブジェクトに直接名前を付けます。注釈付きタグは、独自のタグ オブジェクト、タガー、メッセージを追加します。

v0.1.0ではここでタグオブジェクトに名前を付けます。 v0.1.0^{} はコミットにピールします。これら 2 つのレイヤーには異なるオブジェクト ID が予期されており、2 つのリリースを示すものではありません。

注釈は暗号署名ではありません。 Git タグの公開は、プロバイダーのリリース ノートの作成、アセットのアップロード、デスクトップ リリースの配布ではありません。ここでは、これらの外部アクションはいずれも実行されません。

Create は、refs/tags/v0.1.0 とタグ オブジェクトを追加します。 Push は、選択したサーバー タグを追加します。 HEAD、ローカル ブランチ、インデックス、作業ファイルは移動しません。

正確なプロジェクトの状態を準備する

レッスン 13 の後で元のメインを使用します。作成する前に、実際の H7 SHA を検査し、タグが存在しないことを確認します。タグ付け後にノートブックのコミットを追加しないでください。

GitTreeで

パレット: Command+Shift+P (Ubuntu では Ctrl+Shift+P);正確な名前のコマンドを入力して選択します。名前付き参照アクションは、引数のないパレット ショートカットではなく、その行のコンテキスト メニューを使用します。

  1. 実際のメイン/H7 グラフ行を選択します (ドキュメント: Leo のレビュー リマインダーを追加)。フッターの変更とアイデンティティを確認し、右クリックします。
  2. Tag Here を開いて Create Annotated Tag Here… を選択します (行のメニューには、軽量タグを作成するプレーンな Create Tag Here… もリストされています)。ダイアログのタイトルは、コミットの短い ID で「注釈付きタグを作成」です。
  3. タグ名 v0.1.0 とメッセージを設定します。最初に使用可能な GitTree 機能コース チェックポイント。
  4. Signing の下の選択肢は、Git 構成に従う、このタグに署名する、および Don’t sign this tag です。ダイアログには、Git config がタグに署名しない (tag.gpgSign が設定されていない) ことが示されています。この明示的な署名のないレッスンでは、「このタグに署名しない」を選択します。グローバル署名構成を変更しないでください。
  5. 「タグの作成」を 1 回クリックして待ちます。 v0.1.0 がチェックアウトを変更せずに意図したコミットにラベルを付けることを確認します。
  6. サイド パネルの Tags グループで、v0.1.0 → Push Tag を右クリックします (同じメニューには [タグの削除…] と [リモートからのタグの削除…] もありますが、このレッスンでは使用しません)。通知には「プッシュされたタグ v0.1.0」と書かれています。
  7. ネイティブ タグ オブジェクト タイプ、メッセージ、ピーリングされたコミットとサーバー タグ ID を検証します。注釈と署名を混同しないでください。
  8. メインをクリーンなままにし、タグを変更しないでください。すべてのタグをプッシュしたり、プロバイダー リリースを作成したりしないでください。

すべての通常のコミット: 概要が記載された主題です。説明が空です。以前のコミットを修正し、フックをスキップし、サインオフ者を追加し、別の作成者を追加し、コミット後にプッシュし、空のコミットをオフに許可します。共著者はいません。指定したファイルのみをステージングし、N 個のファイルへの変更を 1 回コミットする (1 つのファイル)、または代わりに Command+Enter を押します。本当の結果を待ちましょう。明示的に修正するレッスンでは、指定されたオプションのみが変更されます。

ターミナル内

クリーンメインでのネイティブ相当:

Command · bash
git tag --annotate --no-sign v0.1.0 --message "First usable GitTree Features course checkpoint"
git cat-file -t v0.1.0
git for-each-ref --format='%(contents:subject)' refs/tags/v0.1.0
git rev-parse 'v0.1.0^{}'
git push --quiet origin refs/tags/v0.1.0
git ls-remote --tags origin refs/tags/v0.1.0 'refs/tags/v0.1.0^{}'
git status --short

--annotate は短縮形 -a (git tag -a v0.1.0 -m "message") で、--message は -m です。いずれにしても、軽量の git tag v0.1.0 とは異なり、Git は独自のメッセージとともにタグ オブジェクトを保存します。

作成/プッシュは成功しました。タイプとメッセージ出力:

出力
tag
First usable GitTree Features course checkpoint

剥がされた SHA は実際のメインと等しくなります。 ls-remote は、実際のタグオブジェクトとピーリングされたコミット ID を返します。モデル ラベルではなく、これらの変数値を記録します。最終ステータスは空です。別の重複名の試行:

Command · bash
git tag v0.1.0

実際の標準エラー出力、出口 128:

出力
fatal: tag 'v0.1.0' already exists

元のタグはそのまま残ります。衝突を隠すために -f を使用しないでください。

結果

Where you end: アノテーション付き v0.1.0 はローカルおよびローカルのベアオリジンに存在します。メッセージ「最初に使用可能」GitTree 機能コース チェックポイント、ピーリングされたコミット H7。 Main/HEAD/index/work は変更されません。ホストされたリリースや署名は要求されていません。

よくある間違い

  • 注釈付きの署名付きタグを呼び出します。
  • メインの代わりに選択した古い行にタグを付けます。
  • 意図せずにすべてのローカル タグをプッシュする。

何か問題が発生した場合

間違った作成を確認する前にキャンセルしてください。ローカル タグが間違っている場合は、その実際のターゲットと、明示的な削除前に公開されたかどうかを検査します。ネイティブ重複拒否により、既存の参照が保持されます。

理解度を確認してください

各質問に答えてから、その理由を読みましょう。 「必須」とマークされた質問は、レッスンの完了にカウントされます。

  1. 質問 1 / 6

    ここでのv0.1.0とは何ですか?

    答えを 1 つ選択してください。

  2. 質問 2 / 6

    どの主張が正当化されますか?

    当てはまるものをすべて選択してください。

  3. 質問 3 / 6
    必須

    タグ付けすると別のメインコミットが作成されますか?

    答えを 1 つ選択してください。

  4. 質問 4 / 6
    必須

    強制せずに同じ名前を再利用します: 結果は?

    答えを 1 つ選択してください。

  5. 質問 5 / 6

    タグとメイン ID が異なります: 壊れていますか?

    答えを 1 つ選択してください。

  6. 質問 6 / 6
    必須

    何が結果を証明するのでしょうか?

    当てはまるものをすべて選択してください。

6 個中 0 個が正解です

必須の質問に正しく答えると、レッスンを完了できます。

このブラウザで確認しました。

練習する

オブジェクト タイプ タグ、正確なアノテーション、ピーリングされた SHA=main および両方のサーバー タグ レイヤーを検証します。最初のタグを保持しながら重複した拒否を予測し、作業をクリーンにします。

あなた自身の確認: サイトはあなたのコンピュータを認識できません。

レッスンを完了するには、必須の質問に正しく答え、実践的な演習を確認してください。

要約

  • アノテーションはタグオブジェクトを追加します。
  • 選択したタグのみをプッシュします。
  • Git タグとホストされたリリースは異なります。

用語集の用語の紹介

注釈付きタグ — وسم مشروح;軽量タグ — وسم خفيف;タガー — タガー皮をむかれたコミット — إيداع المحسوم。

ビデオトランスクリプト

ビデオのナレーションが次々と流れます。

トランスクリプトを表示する
  1. 正確なチェックポイントから開始します。
  2. ブランチとインデックスに名前を付けます そして作業バージョン。
  3. 分離されたコースのコピーのみを準備します。
  4. タグ付けする前に正確なコミットを選択してください。
  5. そのコミット時にアノテーション付きのタグを作成します。
  6. 名前と意味のある注釈を書きます。
  7. 注釈の意味はありません 暗号署名。
  8. タグによってブランチが切り替わることはありません。
  9. 名前付きタグのみをプッシュします。
  10. タグを剥がしてコミットを確認します。
  11. ホスト型リリースを発明しないでください。
  12. ここでのv0.1.0とは何ですか?
  13. 検証されたオブジェクト タイプは次のとおりです。 タグを付けてメインに剥がします。
  14. どの主張が正当化されますか?
  15. 署名されていない注釈は追加します メタデータですが、HEAD は移動しません。
  16. タグ付けすると別のメインコミットが作成されますか?
  17. タグの参照/オブジェクトのポイント to an existing commit.
  18. 強制せずに同じ名前を再利用します: 結果は?
  19. 測定された重複試行 exit128 し、タグを保存しました。
  20. タグとメイン ID が異なります: 壊れていますか?
  21. 注釈付きタグ自体のオブジェクト コミットターゲットとは異なります。
  22. 何が結果を証明するのでしょうか?
  23. 両方のオブジェクト レイヤを読み取り、 実際に選択されたサーバー参照。
  24. 実際の結果を検証してみると、 単なるメッセージではありません。
  25. 行動する前に、変更された入力を予測します。
  26. リカバリする前に有用な作業を保存します。
  27. 続行する前にチェックポイントを証明してください。
  28. 検証結果を保存する 次のステップのために。