snake_caseのブランチ命名規約
gitブランチ名にsnake_case(アンダースコア区切り)を使用します。ブランチ名をコードスタイルに合わせるPython中心のチームやプロジェクトで人気です。
Naming Conventions
詳細な説明
gitブランチのsnake_case
snake_caseは、単語の区切りにアンダースコアを使用する小文字の表記法です。gitブランチではkebab-caseほど一般的ではありませんが、一部のチーム、特にPython、Ruby、Rustを主に使用するチームではsnake_caseが標準的なコードスタイルであるため、好まれる規約です。
フォーマット
type/ticket_number_description_in_snake_case
例
| 入力 | snake_caseブランチ |
|---|---|
| Feature: PROJ-123 "Add User Auth" | feature/proj_123_add_user_auth |
| Bugfix: #456 "Fix Memory Leak" | bugfix/456_fix_memory_leak |
| Refactor: REF-90 "Extract Service Layer" | refactor/ref_90_extract_service_layer |
snake_caseを選ぶ場合
snake_caseは、コード規約とブランチ名の一貫性を重視するチームに適しています。Pythonプロジェクトがすべてにsnake_caseを使用している場合(ファイル名、関数名、変数名)、この規約をブランチ名にも拡張することで統一された開発者体験が生まれます。
トレードオフ
メリット:
- Python/Ruby/Rustの命名規約との一貫性
- アンダースコアはチケットID内のハイフンと区別できる(PROJ-123はそのまま
proj-123として残り、単語にはアンダースコアを使用) - 一部の開発者はターミナルでアンダースコアの方がダブルクリックで選択しやすいと感じる
デメリット:
- ドキュメント、Slack、メールのリンク下線でアンダースコアが隠れることがある
- より広いgitコミュニティでは一般的ではなく、他のプロジェクトからの貢献者を混乱させる可能性がある
- 一部のCI/CDツールはブランチマッチングルールでkebab-caseパターンを期待する
チケットIDと説明の分離
snake_caseの実用的な利点の1つは、チケットIDにハイフンが含まれる場合(JIRAキーのように)です。単語の区切りにアンダースコアを使用することで、チケットIDが視覚的に区別されます:feature/PROJ-123_add_user_authはチケットPROJ-123と説明add_user_authを明確に分離します。
ユースケース
Python開発チームが、PEP 8コードスタイルに合わせたブランチ名を使用し、ファイル名、関数名、gitブランチ全体でアンダースコアを一貫して使用したいと考えています。