🍣
GitHub の tag や release の asserts に何が入っいるか
GitHub の tag
-
GitHub の tag を作ると、下記のように一覧で asserts が確認できる。圧縮ファイルですね
-
これらの asserts に何が入っているか興味を持っていて確認してみた
前提知識
- 大前提として、tag は特定の commit に対して付与される。
- 参考資料
先に検証結果
- main ブランチ(の commit)のみではなく、main 以外のブランチ(の commit)に対しても tag を作成できる
- tag を作成する時に commit を指定(指定しない場合はデフォルトで現在のブランチの head になる)するので、指定した commit の祖先 commit 群と自身を含めたデータをすべて圧縮して GihHub 上の asserts を作成する
- ある commit の祖先 commit は誰か、tag -> commit -> branch という順番で依存関係がある
- なので、tag の asserts に入っているのは 該当 commit とその祖先 commit のデータとなる
検証過程
初期で main ブランチのみ
- tag を打つと:v1.0.0
- GitHub の asserts
- この状態で main ブランチに入っている README.md と test_draft_condition.yml ファイルが入っている
dog ブランチを作成 & tag を作成
- wanwan.txt を追加してコミットする
- この状態で tag を作成 & push
git tag v1.dog.0
git push origin v1.dog.0
- GitHub の asserts
- 追加した wanwan.txt ファイルが入っている
- 元々 main ブランチに入っている README.md と test_draft_condition.yml ファイルが入っている
cat ブランチを作成 & tag を作成
- kitty.txt を追加してコミットする
- この状態で tag を作成 & push
git tag v1.cat.0
git push origin v1.cat.0
- GitHub の asserts
- kitty.txt ファイルが入っている
- 元々 main ブランチに入っている README.md と test_draft_condition.yml ファイルが入っている
cat ブランチを main ブランチへマージ & tag を作成
- cat ブランチを main ブランチへマージする
- main ブランチの最新の状態で tag を作成 & push
git tag v1.0.1
git push origin v1.0.1
- GitHub の asserts
- 元々 main ブランチに入っている README.md と test_draft_condition.yml ファイル
- kitty.txt ファイルが入っている(v1.0.0 との差分である)
全体イメージ
- 生成した git graph
- 生成した GitHub Tags(と中身)
Discussion