• ゲーム
  • Industry
  • リソース
  • コミュニティ
  • 学習
  • サポート
開発
Unityエンジン
任意のプラットフォーム向けに2Dおよび3Dゲームを構築
ダウンロードプランと価格
収益化
アプリ内課金(IAP)
ストア全体でIAPを発見し、管理する
Mediation
収益を最大化し、マネタイズを最適化する
Ad Quality
アプリのユーザーエクスペリエンスを保護する
Tapjoy
長期的なユーザーの忠誠心を構築する
すべてのマネタイズ製品
詳しく見る
詳しく見る
発見され、モバイルユーザーを獲得する
UnityベクターAI
プレイヤーを適切なゲームに接続する
Auraのオンデバイス広告
ピークエンゲージメント時にデバイス上のユーザーにリーチする
すべての成長製品
活用事例
3Dコラボレーション
リアルタイムで3Dプロジェクトを構築およびレビューする
没入型トレーニング
没入型環境でのトレーニング
顧客体験
インタラクティブな3D体験を作成する
すべての業界ソリューション
業界
製造業
運用の卓越性を達成する
小売
店内体験をオンライン体験に変換する
自動車
革新と車内体験を高める
全業界
技術ライブラリ
ドキュメント
公式ユーザーマニュアルとAPIリファレンス
開発者ツール
リリースバージョンと問題追跡
ロードマップ
今後の機能をレビューする
用語集
技術用語のライブラリ
インサイト
ケーススタディ
実際の成功事例
ベストプラクティスガイド
専門家のヒントとコツ
すべてのリソース
新機能
ブログ
更新情報、情報、技術的ヒント
お知らせ
ニュース、ストーリー、プレスセンター
コミュニティハブ
ディスカッション
議論、問題解決、つながる
イベント
グローバルおよびローカルイベント
コミュニティストーリー
Made with Unity
Unityクリエイターの紹介
ライブストリーム
開発者、クリエイター、インサイダーに参加する
Unity Awards
世界中のUnityクリエイターを祝う
すべてのレベルに対応
Unity Learn
無料でUnityスキルをマスターする
プロフェッショナルトレーニング
Unityトレーナーでチームをレベルアップ
Unity初心者向け
スタートガイド
学習を開始しましょう
Unityエッセンシャルパスウェイ
Unity は初めてですか?旅を始めましょう
ハウツーガイド
実用的なヒントとベストプラクティス
教育
学生向け
キャリアをスタートさせる
教育者向け
教育を大幅に強化
教育機関向けライセンス
Unityの力をあなたの機関に持ち込む
認定教材
Unityのマスタリーを証明する
サポートオプション
ヘルプを得る
Unityで成功するためのサポート
Success Plan
専門的なサポートで目標を早く達成する
FAQ
よくある質問への回答
お問い合わせ
私たちのチームに連絡する
プランと価格
言語設定
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
ソーシャル
通貨
購入
  • プロダクト
  • Unity Ads
  • サブスクリプション
  • Unity Asset Store
  • リセラー
教育
  • 学生
  • 教育関係者
  • 教育機関
  • 認定資格試験
  • 学ぶ
  • スキル開発プログラム
ダウンロード
  • Unity Hub
  • ダウンロードアーカイブ
  • ベータプログラム
Unity Labs
  • ラボ
  • 研究論文
リソース
  • Learn プラットフォーム
  • コミュニティ
  • ドキュメント
  • Unity QA
  • FAQ
  • サービスのステータス
  • ケーススタディ
  • Made with Unity
Unity
  • 当社について
  • ニュースレター
  • ブログ
  • イベント
  • キャリア
  • ヘルプ
  • プレス
  • パートナー
  • 投資家
  • アフィリエイト
  • セキュリティ
  • ソーシャルインパクト
  • インクルージョンとダイバーシティ
  • お問い合わせ
Copyright © 2025 Unity Technologies
  • 法規事項
  • プライバシーポリシー
  • クッキーについて
  • 私の個人情報を販売または共有しないでください

「Unity」の名称、Unity のロゴ、およびその他の Unity の商標は、米国およびその他の国における Unity Technologies またはその関係会社の商標または登録商標です(詳しくはこちら)。その他の名称またはブランドは該当する所有者の商標です。

Hero background image

バージョン管理のベストプラクティス

最新の e ブック「Version control and project organization best practices for game developers」で紹介されている、あらゆるバージョン管理ソリューションを最大限に活用するためのヒントとベストプラクティスをご覧ください。
e ブックを読む
e ブックを読む
このウェブページは、お客様の便宜のために機械翻訳されたものです。翻訳されたコンテンツの正確性や信頼性は保証いたしかねます。翻訳されたコンテンツの正確性について疑問をお持ちの場合は、ウェブページの公式な英語版をご覧ください。
ここをクリックしてください。

技術的な知識のないゲーム開発者やクリエイターにとって、バージョン管理の理解は困難な場合があります 。しかし、本来そんなに難しく感じる必要はないものなのです。このページでは、選択したバージョン管理システム(VCS)を最大限に活用するためのベストプラクティスをいくつか紹介します。

  • コミットを少なく、頻繁にコミットする
  • コミットメッセージをクリーンに保つ
  • 無差別コミットを避ける
  • 最新機能をいち早く
  • Plastic SCM ワークフロー
  • Plastic SCM でのマルチサイト構成
  • ツールセットを知る
  • Plastic SCM の機能ブランチ
  • Git フロー
  • Plastic SCM タスクブランチ
  • Perforce Helix Core ワークフロー
  • プルリクエスト
  • 基準を守る

コミットを少なく、頻繁にコミットする

これは、ワークフローを最も簡単に改善できる部分ですが、開発者によっては最も苦労する部分でもあります。他のプロジェクト管理ツールで作業する場合、すでに作業を管理しやすい小さなタスクに分解している可能性が高いです。コミットはまったく同じように扱うべきです。

1 つのコミットは、1 つのタスクまたはチケットにのみ関連する必要があります。ただし、1 行のコードで複数のバグが魔法のように修正される場合を除きます。大きな機能に取り組んでいる場合は、それを小さなタスクに分解し、それぞれに対してコミットします。

小さなコミットを使用する最大の利点は、何か問題が発生した場合に、望ましくない変更をより簡単に検出して元に戻すことができることです。

コミットメッセージをクリーンに保つ

コミットメッセージは、プロジェクトの履歴を記述します。結局のところ、ゲームにハイスコアテーブルを追加した変更は、コミットメッセージに「この新しいテーブルで私のスコアを超えることはできないでしょう!」ではなく、「メニューにハイスコアテーブルを追加しました!」と表示されていれば、はるかに簡単に見つけることができます。

Jira や GitLab などのタスクチケットシステムを使用する場合は、コミットにチケット番号を含めるとさらに便利です。多くのシステムは、スマートコミットと連携して動作するように設定できるため、コミットメッセージからチケットを参照したり、ステータスを変更したりすることができます。

たとえば、「JRA-123 #close #comment task completed」というコミットを行うと、Jira チケット JRA-123 が閉じられ、チケットに「task completed」というコメントが残ります。

このワークフローの設定の詳細については、JiraのドキュメントまたはGitLabのPivotal Trackerサービスを参照してください

無差別コミットを避ける

「commit -a」(「すべての変更をコミット」する Git コマンド)またはその対応するコマンドを使用すべきなのは、プロジェクトの最初のコミット時のみです。通常、プロジェクト内のファイルは README.md のみです。

コミットには、リポジトリにコミットする変更に関連するファイルのみを含める必要があります。Unity プロジェクトでは、シーン、プレハブ、スプライトアトラスなどの一部のファイルに変更を加えるつもりはなかったにもかかわらず、変更が加えられたマークが付けられることがあるため、特に注意が必要です。

例えば、他の人が作業中のシーンに誤って変更をコミットしてしまうと、その人が変更をコミットしに行って、最初に変更をマージする必要があることに気付いたときに頭を悩ませることになります。

これはバージョン管理を始めたばかりの人が犯しがちな間違いの 1 つです。重要なのは、プロジェクトにコミットするのは自分の変更のみであることです。詳細については、ワークフローを高速化する方法に関するこちらのブログ記事をご覧ください。

Plastic SCM の日常ワークフロー

最新機能をいち早く

必要に応じて、リポジトリから最新の変更を作業用コピーにプルします。マージ競合の可能性が高まるだけなので、単独で作業するのは得策ではありません。各システムの一般的な日常ワークフローについては、上の表を参照してください。

Plastic SCM ワークフローチャート

Plastic SCM ワークフロー

Plastic SCM のワークフローは少し異なり、集中型、分散型、またはマルチサイト構成で作業できます。

マルチサイト Plastic SCM 構成図
マルチサイトの PLASTIC SCM 設定

Plastic SCM でのマルチサイト構成

マルチサイト構成は、各ユーザーが集中型ワークフローまたは分散型ワークフローのいずれかで作業するなど、かなりユニークなものになる場合があります。

以下の例を考えてみましょう。

  • 2 つのチーム
  • 各チームにオンサイトサーバーがある
  • チームメンバーは、ローカルまたは各サイトで分散してチェックインしますが、オンサイトに近いサーバーの速度のメリットを享受できます。
  • サーバー間でプッシュおよびプルを行い、完全または部分的に同期を維持する
Plastic SCM の Gluon
プラスチック SCM のグルーオン

ツールセットを知る

チームが使用する VCS に関係なく、全員が使い慣れ、自由に使えるツールを理解していることを確認してください。

Git を使用している場合、全員が同じ GUI クライアントを使用する必要はありません。ただし、コミット>プル>プッシュのワークフローで全員が快適に作業できることを最優先事項にしてください。つまり、必要なファイルだけをコミットする知識を持っている必要があります。

Plastic SCM を使用している場合は、ワークフローを簡素化する使いやすい GUI である Gluon に慣れるよう、チームのアーティストに働きかけてください。Gluon では作業するファイルを自由に決められるため、プロジェクト全体をダウンロードして管理する必要はありません。また、ファイルをロックして、他の人が作業できないようにすることもできます。完了したら、ファイルをリポジトリに送信し、必要に応じて再度ロックを解除します。

Plastic SCM の機能ブランチ

複数のリリースサイクルを持つ長期的なプロジェクトで作業する場合、機能ブランチはワークフローにとって非常に有益です。多くの場合、チームはトランク、マスター、メインと呼ばれるリポジトリの同じブランチで作業します。

これを行うと、プロジェクト全体が同じタイムラインに沿って動きます。しかし、チームとしてより効果的に共同作業を行うには、作業を複数のブランチに分割すると便利です。

Plastic SCM Git ワークフロー
GIT フローワークフローによりリリース管理が容易になる

Git フロー

Git では、Git Flow と呼ばれる特定のワークフローは、機能、バグ修正、リリースに異なるブランチを使用することに焦点を当てています。

そのため、開発者が孤立したブランチ内で新しい機能の開発を開始した場合、作業が完了するとメインブランチにマージされます。一方、別のチームメイトは、前のリリースでホットフィックスを行ったり、バグを修正したりして、開発中の機能を含めずに新しいバージョンを安全にリリースすることができます。

Plastic SCM ブランチ
タスクパターンごとの PLASTIC SCM ブランチ

Plastic SCM タスクブランチ

Plastic SCM にはタスクブランチもあります。このパターンでは、追跡するタスクごとに新しいブランチを作成します。Git Flow では、機能ブランチを使用して完全な(ときには大きな)機能を開発します。Plastic SCM のタスクブランチは短期的なものです。タスクの実装にいくつかのコミットが必要な場合、そのタスクは小さなタスクに分割できる可能性が高いです。

Perforce Helix Core ワークフロー

Perforce Helix Core は、Streams と呼ばれるシステムを使用して、このスタイルのワークフローを促進します。作業用のデポを作成する場合は、ストリームデポタイプとして設定する必要があります。その後、ストリームグラフビューを使用して新しいストリームを作成できます。メインラインストリーム以外のすべてのストリームは、変更を上流にコピーできるように、親ストリームを持つ必要があります。

ストリームには目的に応じてさまざまな種類があります。ローカルワークステーションでストリームを切り替えたり、変更をアップストリームにコピーして戻したりすると、変更されたファイルのメタデータのみがマージされるため、コンテキストの変更がより迅速になります。

Plastic SCM のコードレビューは GUI に含まれています。
PLASTIC SCM コードレビューが GUI に含まれる

プルリクエスト

機能ブランチの作業が完了したら、プルリクエストを使用して変更をリポジトリのメインストリームに戻すことをお勧めします。プルリクエストは機能やタスクの開発者が作成します。通常、変更をメインラインに受け入れる前にレビューするのは、上級開発者または DevOps の責任です。

Plastic SCM と Perforce はどちらも、ブランチをメインラインに戻すマージを管理するのに役立つ自動化ツールを備えています。Plastic SCM は、Mergebot を使用してこれを行います。Mergebot は、レビューと検証に合格すると、リポジトリのブランチを自動的にマージします。Perforce には、コードレビューの管理に使用される追加のプラットフォーム Helix Swarm があります。これは自動テストでも設定できます。

基準を守る

個人でプロジェクトに取り組んでいる場合でも、組織とバージョン管理の原則は非常に有用です。

チームと作業するときは、明確なコミュニケーションを優先させることが重要です。グループとして、プロジェクトをどのように構成するか、どのバージョン管理システムを使用するか、そのシステム内でのワークフローはどのようにあるべきかなどのガイドラインについて合意する必要があります。

こうすることで、Jira、GitLab、ビルドツール、自動テストなど、他のツールの統合を開始したときに、プロジェクトやワークフローの構築にすでに行った作業が、独自のものになります。

Plastic SCM コールアウト
もっと色々と知りたい方には

この記事が参考になった方は、プロジェクトを整理するためのベストプラクティスに関する別のリソースや、バージョン管理に関する無料の e ブックをご覧ください。

e ブックを読む
詳しく見る