Skip to content

Blog

トランクベースでGit運用する際のコミットメッセージ例

トランクベースでGitを運用する際、コミットメッセージに付与する接頭詞の例をメモしておきます。Geminiに生成してもらいました。

分類 Prefix 意味・内容 具体的な使用例
メイン feat 新機能の追加 feat: ログイン機能の実装
fix バグ修正 fix: 入力フォームのバリデーションエラーを修正
コード改善 refactor リファクタリング(挙動を変えない整理) refactor: 重複したロジックを共通関数に抽出
style フォーマット、空白、セミコロンなど(見た目のみ) style: インデントを2スペースに統一
perf パフォーマンス向上のための変更 perf: 画像読み込みの遅延実行を導入
非機能的変更 docs ドキュメントのみの変更 docs: READMEにインストール手順を追記
test テストコードの追加・修正 test: ユーザー登録のユニットテストを追加
chore 雑用(ライブラリ更新、ビルド設定など) chore: npmパッケージのアップデート
ci CI設定(GitHub Actionsなど)の変更 ci: デプロイ用ワークフローの修正
特殊 wip 作業中(Work In Progress) wip: 決済機能の実装(途中保存)
revert 前のコミットの打ち消し revert: feat: ○○ のコミットを取り消し
feat! 破壊的変更(互換性がなくなる変更) feat!: APIレスポンスのデータ構造を刷新

ForkでGitflowする

Gitを使った開発フローには「GitFlow」や「トランクベース開発」、「GitHubフロー」などがあるそうです。

Gitflow ワークフロー

Gitflow とは、元来は Git ブランチを管理するための破壊的で斬新な戦略のレガシー Git ワークフローです。Gitflow の需要は落ち込み、トランク ベースのワークフローが利用されるようになっています。現在ではこれが最新の継続的なソフトウェア開発のベスト プラクティスおよび DevOps プラクティスと見なされています。Gitflow はまた、CI/CD と使用することも困難な場合があります。この投稿では、歴史的な目的で Gitflow の詳細をご説明します。

トランク ベース開発

最初に普及した Gitflow は、特定の個人だけがメイン コードへの変更を承認できる、非常に厳格な開発モデルです。そのため、コードの品質が維持されてバグの数が最小限に抑えられます。トランク ベース開発は、すべての開発者がメイン コードにアクセスできる、よりオープンなモデルです。そのため、チームはすばやく反復処理を実行して CI/CD を実現できます。

GitHub フロー

GitHub フローは、軽量のブランチ ベースのワークフローです。 GitHub フローは、開発者だけでなくすべてのユーザーに役立ちます。

各々の特徴を一覧にすると以下です。

特徴 GitFlow GitHub Flow トランクベース
複雑さ 高い 低い 非常に低い
リリースの頻度 数週間〜数ヶ月に一度 毎日〜週に数回 1日に何度も
主な用途 堅牢なパッケージソフト Webサービス、SaaS 高速な継続的デプロイ

これらの違いは赤帽エンジニアブログさんのトランクベース開発についてで分かりやすく違いが説明されています。今回はGitクライアントであるForkを使ってGitflowを試してみました。尚、「ひとり開発」を前提にしています。

Cisco CMLで動作するWindows11イメージを作成する

Cisco CMLは検証に便利なプラットフォームです。標準でもCisco製品イメージだけでなく、Linuxなどの「非Ciscoイメージ」が同梱されています。

  • Ciscoイメージ
    • ASAv
    • CAT 8000V
    • CAT 9000v (beta VM image)
    • CSR 1000v
    • FMCv
    • FTDv
    • IOL
    • IOL-L2
    • IOL (Serial)
    • IOSv
    • IOSvL2
    • IOS XRv 9000
    • NX OS 9000
    • Catalyst SD-WAN (including Manager, Controller, Validator, vEdge, and Cisco Edge)
    • Catalyst 9800-CL
  • 非Ciscoイメージ
    • Server(Tiny Core Linux)
    • Alpine (Alpine Linux)
    • Desktop (Alpine Linux)
    • Ubuntu (Ubuntu Linux)
    • Trex (Alpine Linux)

ただ、検証を実施していると「どうしてもWindowsを利用したい」という場合があると思います。Alexander Viftrup AndersenさんがHow To Create a Windows 11 Node for Cisco CMLという記事で「CML上で動作するWindows11イメージを作成する方法」を公開されていますので、今回はこの記事を参考にCML上で動作するWindows11イメージを作成してみます。

Alexanderさんの元記事では「作業を簡易化するスクリプト」も公開されており、そちらも参考にさせて頂きました。素晴らしい記事を公開してくださり、また「日本語の記事を作成する」ことも快諾してくださったAlexanderさんに感謝します。Thank you, Alexander!

Google AntigravityをCLIから起動する

Google AntigravityをCLIから起動するにはagyと入力します。これでGoogle AntigravityのGUIが起動します。

agy

もしくはantigravityと実行しても同じ効果です。

antigravity

agyは以下に存在していました。

% which agy antigravity
/Users/USERNAME/.antigravity/antigravity/bin/agy
/Users/USERNAME/.antigravity/antigravity/bin/antigravity

これは/Applications/Antigravity.app配下へのシンボリックリンクになっていました。

% ls -l ~/.antigravity/antigravity/bin/
lrwxr-xr-x - USERNAME 24 1月  17:39 agy -> /Applications/Antigravity.app/Contents/Resources/app/bin/antigravity*
lrwxr-xr-x - USERNAME 24 1月  17:39 antigravity -> /Applications/Antigravity.app/Contents/Resources/app/bin/antigravity*

GhosttyからリモートのLinuxへSSHした際、プロンプトの色などが正しく表示されない問題を解決する

Ghosttyで開始したシェルから別のLinuxサーバへSSHしたところ、プロンプトの色が正しく表示されませんでした。Terminfoには以下の記載がありました。

Ghostty's terminfo entry is available in ncurses 6.5-20241228 and above. As distros update their ncurses packages, Ghostty's terminfo entry will be available by default system-wide. This will take time to propagate.

確かに、デフォルト状態のGhosttyはTERM環境変数として(xterm-256colorなどではなく)xterm-ghosttyという文字列を送信していました。これを回避する手段として同ページに以下の記載がありました。

Both variants can be automated by specifying one or both of the following in your Ghostty configuration:

  1. shell-integration-features = ssh-terminfo to copy the terminfo entry the first time you log into a new server over SSH.
  2. shell-integration-features = ssh-env to configure SSH to fall back to xterm-256color.

Ghostty v1.2.3では「ひとつのキーバインドで複数アクションの実行」はできない

Ghosttyは設定を柔軟にカスタマイズできます。ただ、バージョン1.2.3時点では「ひとつのキーバインドで複数のアクションを実行することはできない」ようです。これを実現する拡張については以下のGitHub Issueで提案されており、今のところバージョン1.3.0での実装を目指しているようです。

Ghosttyのデフォルト設定

Ghosttyのデフォルト設定は以下を実行することで表示することができます。今回は「コメントあり」のデフォルト設定をメモしておきます。

コメントあり
ghostty +show-config --default --docs
コメントなし
ghostty +show-config --default --docs