> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arc.cdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Git バージョン管理

> インストール、セットアップ、ワークフローの例を含む、CData Arc の設定管理にGit ベースのバージョン管理を使用する方法。

CData Arc は、ほとんどのアプリケーション設定に対してGit ベースのバージョン管理をサポートしており、エンタープライズグレードの変更管理をデータ統合プラットフォームにもたらします。この機能により、チームは完全な監査証跡を伴って設定変更を追跡し、テスト環境と本番環境を分離して維持し、正常な状態にロールバックすることで問題から素早く復旧できます。

Git 統合により、チームメンバーは適切な帰属と変更履歴を伴ってArc の設定で共同作業でき、設定エラーのリスクを低減しながらコンプライアンス要件を満たすことができます。組織は、すでにアプリケーションコードに使用しているのと同じ厳格なバージョン管理の手法を、Arc の設定にも適用できます。

Arc はGit バージョン管理を、GitHub、GitLab、Azure DevOps、Bitbucket などのホスト型Git プラットフォームに接続する**リモート**リポジトリでサポートしています。

セルフホスト型インストールでは、外部Git インフラを必要とせず、Arc サーバー上で直接実行される**ローカル**リポジトリもサポートしています。

デフォルトでは、1つの**グローバル**リポジトリがArc インスタンス全体を対象とします。個々のワークスペースに専用の別のリポジトリを持たせることもできます。詳細については、[グローバルリポジトリとワークスペースリポジトリ](#グローバルリポジトリとワークスペースリポジトリ)を参照してください。

> [!NOTE]
>
> Arc は設定ファイル（`*.cfg`、XML、JSON、バイナリなど）を追跡しますが、[Vault](https://docs.arc.cdata.com/26.4/self-hosted/ja/getting-started/administration/settings/global-settings-vault.md) とその内容、および[ユーザーとロール](https://docs.arc.cdata.com/26.4/self-hosted/ja/getting-started/administration/settings/user-roles.md)の2つは例外です。トークン、ユーザー名、パスワードなどの機密値をバージョン管理しないようにするため、CData は、*すべての* 機密値をVault に保存し、機密値が必要なコネクタではVault のアイテムを参照することを推奨します。追跡されるファイルの種類の完全な一覧については、[アーキテクチャ](https://docs.arc.cdata.com/26.4/self-hosted/ja/getting-started/architecture.md)を参照してください。ワークスペースに独自のリポジトリがある場合、そのワークスペースのファイルは、グローバルリポジトリではなくワークスペースリポジトリで追跡されます。
>
> バージョン管理からファイルを除外するには、Arc の[アプリケーションディレクトリ](https://docs.arc.cdata.com/26.4/self-hosted/ja/getting-started/glossary.md)のルートにある`.gitignore` ファイルにエントリを追加します。ファイルまたはパターンを除外するには、`.gitignore` の新しい行に追加します。除外の一般的な対象には、デプロイ間で異なる環境固有の設定ファイルや、リポジトリサイズを肥大化させる大きなバイナリファイルが含まれます。除外されたファイルはコミット、プッシュ、プル、または復元されることはないため、各環境で個別に管理する必要があることに注意してください。

## インストールと設定

### 前提条件

バージョン管理機能を使用する前に、開発環境や本番環境を含むすべてのArc 環境にGit をインストールする必要があります。

リモートリポジトリを使用する場合は、バージョン管理を設定する前にリポジトリを作成する必要があります。Arc は、GitHub、GitLab、Azure DevOps、Bitbucket を含むすべての主要なGit プラットフォームをサポートしています。 ローカルリポジトリを使用する場合は、リモートのセットアップは不要です。

#### Git のインストール

##### Windows

1. [git-scm.com/download/win](https://git-scm.com/download/win) からGit インストーラーをダウンロードします。
2. インストーラーを実行し、お好みの設定でインストールウィザードに従います。
3. コマンドプロンプトまたはPowerShell を開き、次を実行してインストールを確認します。

   ```
   git --version
   ```

インストールされたGit のバージョンが出力に表示されるはずです。

##### Linux Debian/Ubuntu

次を実行します：

```
sudo apt-get update
sudo apt-get install git
```

##### Linux Fedora/RHEL/CentOS

次を実行します：

```
sudo dnf install git
```

次のコマンドを実行してインストールを確認します：

```
git --version
```

Git のインストールと確認が完了したら、Arc のバージョン管理機能の使用を開始できます。

### バージョン管理の設定

バージョン管理は、アプリケーション全体（グローバルリポジトリ）と、必要に応じて個々のワークスペースの2つのレベルで設定できます。2つの関係については、[グローバルリポジトリとワークスペースリポジトリ](#グローバルリポジトリとワークスペースリポジトリ)を参照してください。

#### グローバルリポジトリの設定

**設定 > 高度な設定 > Git バージョン管理**に移動してバージョン管理を設定します。詳細については、[Git バージョン管理設定](https://docs.arc.cdata.com/26.4/self-hosted/ja/getting-started/administration/settings/git-version-control-settings.md)を参照してください。

**設定**をクリックすると、まず**構成の種類**を選択します：

* **リモート**：ホスト型Git リポジトリに接続します。これにより、複数のArc 環境間でのプッシュ、プル、チームコラボレーションが可能になります。
* **ローカル**：Arc サーバー上に直接スタンドアロンのGit リポジトリを作成します。リモートURL や認証情報は不要です。バージョン管理を最速で開始する方法です。

リモートリポジトリの場合は、リポジトリのURL と認証情報を入力します。リモートリポジトリ自体の作成は本ドキュメントの範囲外ですので、お使いのGit プラットフォームのドキュメントを参照してください。例えば、GitHub でHTTPS 認証を使用する場合、認証にはパスワードの代わりにPersonal Access Token（PAT）を使用する必要があります。

#### ワークスペースリポジトリの設定

個々の[ワークスペース](https://docs.arc.cdata.com/26.4/self-hosted/ja/flows/workspaces.md)を専用のリポジトリでバージョン管理するには：

1. ワークスペースを開き、省略記号メニューの**設定**をクリックします。**Git バージョン管理**タブをクリックします。

2. **Git バージョン管理を有効にする**スイッチをオンにします。グローバルリポジトリがセットアップされている場合は、ワークスペースのバージョン管理を有効にするとグローバルリポジトリから除外され、設定したリポジトリでのみ追跡されることを説明する警告が表示されます。

   ![バージョン管理が有効なワークスペース設定のGit バージョン管理タブ](https://docs.arc.cdata.com/26.4/images/version_control_workspace_settings_enabled.png)

3. リポジトリを設定します。フィールドはアプリケーションレベルのリポジトリと同じです。詳細については、[Git バージョン管理設定](https://docs.arc.cdata.com/26.4/self-hosted/ja/getting-started/administration/settings/git-version-control-settings.md#ワークスペースのgit-バージョン管理設定)を参照してください。

   **構成の種類**を選択します：

   * **リモート**：ホスト型Git リポジトリに接続します。リポジトリURL と認証情報を指定します。
   * **ローカル**：Arc サーバー上にスタンドアロンのGit リポジトリを作成します。リモートURL や認証情報は不要です。

   リモートリポジトリの場合は、リポジトリURL と認証情報を指定します。

4. **保存**をクリックします。

> [!NOTE]
>
> ワークスペースリポジトリには、**デフォルト**ワークスペースに関する制限など、いくつかのルールがあります。詳細については、[グローバルリポジトリとワークスペースリポジトリ](#グローバルリポジトリとワークスペースリポジトリ)を参照してください。
>
> ワークスペースリポジトリは、ローカルとリモートの間で変換できます（[ローカルからリモートリポジトリへの移行](#ローカルからリモートリポジトリへの移行)および[リモートリポジトリからローカルリポジトリへの変換](#リモートリポジトリからローカルリポジトリへの変換)を参照してください）。
>
> リモートURL は、設定を保存した後でも変更できます（[リモートURL の編集](#リモートurl-の編集)を参照してください）。

## グローバルリポジトリとワークスペースリポジトリ

Arc は2種類のリポジトリをサポートしています：

* **グローバル**：**設定 > 高度な設定 > Git バージョン管理**で設定するアプリケーションレベルのリポジトリです。デフォルトでは、すべてのワークスペースを含むインスタンス全体の設定を追跡します。
* **ワークスペース**：グローバルリポジトリとは別に、単一のワークスペースをバージョン管理する任意のリポジトリです。

リモートが設定されていないリポジトリは、グローバルリポジトリであるかワークスペースリポジトリであるかにかかわらず、Arc のインターフェースで**ローカル**と表示されます。

ワークスペースリポジトリを使用する際は、次の点に注意してください：

* グローバルリポジトリがセットアップされている場合、ワークスペースリポジトリを有効にすると、ワークスペースはグローバルリポジトリから移動されます。有効にした後は、ワークスペースは設定したリポジトリでのみ追跡されます。
* 共有リソースはグローバルリポジトリに残ります。ワークスペースが使用する接続、証明書、プロファイルはグローバルリポジトリに残ります。そのため、ワークスペースリポジトリは、ワークスペースに必要なすべてのものの自己完結型のバックアップではありません。
* ワークスペースリポジトリはグローバルリポジトリから独立しています。グローバルリポジトリをセットアップしているかどうかにかかわらず、ワークスペースリポジトリを有効にできます。
* **デフォルト**ワークスペースには独自のリポジトリを設定できません。その**Git バージョン管理**タブには、*デフォルトワークスペースには、別個のGit リポジトリを使用できません。* というメッセージが表示されます。

### 一度に1つのリポジトリ

すべてのバージョン管理アクションは、ちょうど1つのリポジトリ、つまり現在選択しているリポジトリに適用されます。コミット、プッシュ、プル、ブランチ、破棄、復元、およびステータスはすべて選択したリポジトリにのみ適用され、他のリポジトリには適用されません。複数のリポジトリにまたがるアクションはありません。

* リポジトリリストの行から開始したアクションは、アクションの実行中にアクティブなワークスペースが変わっても、その行のリポジトリに対して実行されます。
* 進行状況、エラー、および件数はリポジトリごとに個別に追跡されるため、1つのリポジトリでの失敗が別のリポジトリでの作業を妨げることはありません。

デフォルトで選択されるリポジトリは、Arc 内のどこにいるかによって決まります。**フロー**ページでは、選択は作業中のワークスペースに従います。それ以外の場所では、選択はグローバルリポジトリです。選択はいつでも変更できます（[リポジトリの選択](#リポジトリの選択)を参照してください）。

## 開発環境

> [!NOTE]
>
> このセクションは**リモート**リポジトリにのみ適用されます。ローカルリポジトリは同期するリモートがないため、個別の開発環境は必要ありません。

共有された本番環境でArc のバージョン管理を使用する場合、CData は、チームメンバーごとに個別の開発環境をセットアップすることを推奨します。これにより、ユーザーに最良のエクスペリエンスを提供し、複数のユーザーが共有環境で同時に変更をプッシュおよびプルしようとした際に発生し得るコンフリクトを回避できます。

バージョン管理を使用して共有された本番環境で直接作業すると、次のような事態を招く可能性があります：

* 複数のユーザーが同時に変更を行った際のマージコンフリクト
* 競合するバージョン管理操作による不十分なユーザーエクスペリエンス

開発環境を使用することで、各チームメンバーは独立して作業し、変更をローカルでテストし、完了した作業を他のメンバーに干渉したり本番運用を妨げたりすることなくリポジトリにプッシュできます。

本番のArc インスタンスをミラーリングするローカル開発環境を設定するには、次の手順に従ってください：

1. 本番環境からデータ暗号化キーをエクスポートします（キーの使用方法の詳細については、[データ暗号化キーとマスターキーについて](https://docs.arc.cdata.com/26.4/self-hosted/ja/getting-started/installation/custom-master-key.md#データ暗号化キーとマスターキーについて)を参照してください）

   1. 本番環境で、API キーを使用して[管理API のexportDataEncryptionKey](https://docs.arc.cdata.com/26.4/self-hosted/ja/admin-api/admin-api-actions.md)エンドポイントを呼び出します。`passphrase` パラメータを使用して、開発環境にキーをインポートする際に使用するパスフレーズを作成します。
   2. このデータ暗号化キーは開発環境で必要になるため、レスポンスを保存してください。

2. 本番環境からVault をエクスポートします。

   1. UI を使用する
      1. **設定 > 高度な設定 > 移行 > エクスポート**に移動します
      2. **カスタムエクスポート**を選択して**パスワード**を作成し、**次へ**をクリックします
      3. **設定**タブで、**Vault**のみをチェックします
      4. **エクスポート**をクリックしてエクスポートを実行し、ファイルをダウンロードします

   2. Vault オプションを有効にした[管理API のexport](https://docs.arc.cdata.com/26.4/self-hosted/ja/admin-api/admin-api-actions.md)エンドポイントを使用する

3. 開発環境にArc をインストールします（まだインストールされていない場合）

   1. 開発マシンにArc をインストールします
   2. 初期設定を完了し、最初の[ユーザーアカウント](https://docs.arc.cdata.com/26.4/self-hosted/ja/getting-started/administration/settings/users.md)を作成します
   3. 開発用ライセンスをインストールします
   4. API アクセス用のAPI キーを作成します

4. データ暗号化キーを開発環境にインポートします：開発環境で、API キーを使用して、本番環境からキーをエクスポートした際に使用したのと *同じパスフレーズ* で[管理API のimportDataEncryptionKey](https://docs.arc.cdata.com/26.4/self-hosted/ja/admin-api/admin-api-actions.md)エンドポイントを呼び出します。これにより、開発環境が同じデータ暗号化キーを使用し、Vault の内容を復号できるようになります。

5. Vault を開発環境にインポートします

   1. UI を使用する
      1. **設定 > 高度な設定 > 移行 > インポート**に移動します
      2. 先ほどエクスポートしたVault ファイルをアップロードします
      3. インポートプロセスを完了します

   2. [管理API のimport](https://docs.arc.cdata.com/26.4/self-hosted/ja/admin-api/admin-api-actions.md)エンドポイントを使用して、Vault ファイルをアップロードしてインポートします。

6. リモートリポジトリを[プル](#変更のプル)して、開発環境を本番の設定と同期します。本番環境の一部のワークスペースに独自のリポジトリがある場合は、それらのリポジトリも設定してプルしてください。接続、証明書、プロファイルなどの共有リソースはグローバルリポジトリに残るため、グローバルリポジトリもプルする必要があります。

   1. UI を使用する
      1. [前提条件](#前提条件)の手順に従ってGit をインストールします
      2. **設定 > 高度な設定 > Git バージョン管理**に移動します
      3. リモートリポジトリ接続を設定します（手順については、[Git バージョン管理設定](https://docs.arc.cdata.com/26.4/self-hosted/ja/getting-started/administration/settings/git-version-control-settings.md)を参照してください）
      4. リモートリポジトリから最新の変更をプルします

   2. 標準のGit コマンドを使用して、ローカルマシンでリポジトリ接続を設定する

開発環境を設定すると、次のことができるようになります：

* 本番に影響を与えることなく、ローカルで変更を行いテストする
* ローカルリポジトリに変更をコミットする
* 完了した作業をリモートリポジトリにプッシュする
* 他のチームメンバーが行った更新をプルする
* 共同開発のために標準のGit ワークフロー（ブランチやプルリクエストなど）に従う

これで、本番環境は、制御されたスケジュールに従って、承認された変更をリモートリポジトリからプルできるようになります。

## バージョン管理操作

Arc のGit 統合は、設定変更の管理、リモートリポジトリとの同期、複数の開発ブランチの維持を可能にする、不可欠なバージョン管理操作を提供します。これらの操作は標準のGit ワークフローに従いつつ、Arc の設定管理のニーズに合わせて特別に調整されています。

バージョン管理が環境に実装されると、標準のArc フッターは、変更されたローカルファイル数、リモートコミット数、選択したリポジトリ、現在のブランチなどのGit メトリクスとアクションを表示するステータスバーになります。これらすべてのメトリクスとアクションは、選択したリポジトリに適用されます（[一度に1つのリポジトリ](#一度に1つのリポジトリ)を参照してください）。

![選択したリポジトリを表示するGit バージョン管理のフッターツールバー](https://mintcdn.com/cdata-arc/d_uxoDpYg8BiVilE/26.4/images/version_control_footer_toolbar.png?fit=max\&auto=format\&n=d_uxoDpYg8BiVilE\&q=85\&s=d59c1b1cf3d5ea75acdc08db5941353f)

### 権限

バージョン管理は管理者に制限されています。グローバルリポジトリとワークスペースリポジトリの両方で、バージョン管理ログの表示を含むバージョン管理機能を使用できるのは、[Admin ロール](https://docs.arc.cdata.com/26.4/self-hosted/ja/getting-started/administration/settings/user-roles.md#admin-ロール)のユーザーのみです。それ以外のすべてのユーザーには、UI にバージョン管理のオプションが表示されません。

### コミットとプッシュ

*コミット* は、選択したリポジトリ内のすべての設定変更を単一のアトミックな単位として取得し、そのリポジトリに保存します。コミットすると、Arc は自動的にArc のユーザー名を作成者として記録し、変更にタイムスタンプを付けることで、誰がいつどのような変更を行ったかの完全なトレーサビリティを確保します。変更の目的を文書化するために、コミットメッセージが必須です。

*プッシュ* は、ローカルのコミットをリモートのGit リポジトリに同期し、変更を他のチームメンバーやバックアップシステムが利用できるようにします。まだプルしていない新しい変更がリモートブランチに含まれている場合、プッシュ操作は失敗し、エラーメッセージと次に行うべきことの提案が表示されます。これにより、他のユーザーの作業を上書きすることを防ぎ、適切なマージ処理を確保します。

リモートリポジトリの場合、コミットとプッシュの操作は単一のアクションで処理されます。詳細については、[新しい変更のコミットとプッシュ](#新しい変更のコミットとプッシュ)を参照してください。 ローカルリポジトリの場合、プッシュのステップはありません。ツールバーには**コミット＆プッシュ**の代わりに**コミット**が表示されます。

### プル

> [!NOTE]
>
> プルはリモートリポジトリでのみ利用できます。ローカルリポジトリにはプルするリモートがありません。

*プル* は、選択したリポジトリのリモートから最新の変更を取得し、ローカルのArc 設定を更新します。Arc がバックグラウンドで自動的にプルすることはありません。プルする前に、コミットされていないローカルの変更をコミットまたは破棄する必要があります。コミットされていない変更が検出された場合、操作は失敗します。ローカルバージョンとリモートバージョンの間にマージコンフリクトがある場合、プルは失敗し、Git ツールを使用して外部でコンフリクトを解決するよう指示するメッセージが表示されます（詳細については、[コミットとプルのコンフリクトの管理](#コミットとプルのコンフリクトの管理)を参照してください）。プル操作はGit ツールバーから開始できます。詳細については、[変更のプル](#変更のプル)を参照してください。

### リポジトリの選択

複数のリポジトリが初期化されている場合、ツールバーには検索可能なリポジトリリストが含まれます。これを使用して、すべてのリポジトリの状態を確認し、どのリポジトリを選択するかを選べます。

![グローバルリポジトリとワークスペースリポジトリを表示するリポジトリリスト](https://mintcdn.com/cdata-arc/d_uxoDpYg8BiVilE/26.4/images/version_control_repository_list.png?fit=max\&auto=format\&n=d_uxoDpYg8BiVilE\&q=85\&s=4caa8b6cd1106ec27e4a1fbfde7ef242)

各リポジトリについて、リストには次の情報が表示されます：

* Git プロバイダーとリポジトリ名
* スコープ：**グローバル**、またはワークスペースの名前
* 現在のブランチ
* ローカルの変更数
* 受信コミット数

リモートがないリポジトリは、スコープに**ローカル**と表示されます。

リストの各行には、次のアクションがあります：

* **コミット＆プッシュ**（リモートがないリポジトリの場合は**コミット**）：そのリポジトリを事前に選択した状態で、[ローカル変更](#新しい変更のコミットとプッシュ)フライアウトを開きます。
* **プル**：そのリポジトリの受信コミットをプルします。
* **選択**：そのリポジトリを選択したリポジトリにします。現在のリポジトリには、代わりに**選択済み**と表示されます。

行から開始したアクションは、常にその行のリポジトリに適用されます。リポジトリでコンフリクトが発生している場合、その行にはメッセージ *リポジトリ内に競合があります。競合を解決するには、リポジトリに移動してください。* が表示されます。そのリポジトリを開いてコンフリクトを解決してください（[コミットとプルのコンフリクトの管理](#コミットとプルのコンフリクトの管理)を参照してください）。

### ブランチ

ブランチ管理により、開発、テスト、本番の各環境など、さまざまな目的に応じた個別の設定バージョンを維持できます。ブランチは1つのリポジトリに属するため、表示されるブランチや行うブランチの変更は、選択したリポジトリにのみ適用されます。ツールバーのブランチドロップダウンを使用して、ブランチの切り替え、新規作成、または古いブランチの削除を行います。新しいブランチを作成する際は、ブランチ名を指定し、どのブランチから作成するかを選択します（デフォルトでは現在のブランチが使用されます）。これにより、メイン環境に影響を与えることなく設定変更を試すことができます。詳細については、[ブランチの作成](#ブランチの作成)および[ブランチの削除](#ブランチの削除)を参照してください。

### ログ記録

すべてのバージョン管理の変更は、[アクティビティ](https://docs.arc.cdata.com/26.4/self-hosted/ja/getting-started/administration/activity.md)ページの[監査ログ](https://docs.arc.cdata.com/26.4/self-hosted/ja/getting-started/administration/activity.md#監査ログ)セクションに記録されます。必要に応じて、そのページからログをダウンロードできます。

![バージョン管理の変更の監査ログ](https://mintcdn.com/cdata-arc/JuVWSaGlKX7avH_C/26.4/images/version_control_audit_logs.png?fit=max\&auto=format\&n=JuVWSaGlKX7avH_C\&q=85\&s=7337feb661705e740369380d4e9b97c8)

## 履歴ビューア

バージョン管理を有効にすると、**アクティビティ**ページに**コミット履歴**タブが表示されます。これは、一度に1つのリポジトリのコミット履歴を表示し、コミットハッシュ、コミットメッセージ、作成者、日時、各コミットで変更されたファイルのリストなどの詳細を提供します。このタブのコンテンツは検索とフィルタリングが可能です。

![Activity ページのコミット履歴タブ](https://mintcdn.com/cdata-arc/d_uxoDpYg8BiVilE/26.4/images/version_control_commit_history.png?fit=max\&auto=format\&n=d_uxoDpYg8BiVilE\&q=85\&s=bd911cdc542733a0a575f43d3c6098b0)

* **Repository** フィルタを使用して、テーブルに履歴を表示するリポジトリを選択します。このタブには単一のリポジトリの履歴が表示され、すべてのリポジトリを統合した履歴ではありません。テーブルにはリポジトリ列がなく、すべてのリポジトリを一度に表示するオプションもありません。プルや復元など、行に対するアクションは、履歴を表示しているリポジトリに適用されます。リポジトリが設定されていない場合、タブには *No repositories available* と表示されます。

* **すべて**および**すべてのユーザー**フィルタを使用して、結果をさらに絞り込みます。

**コミット**ハッシュをクリックすると、**Commit Details** ページが開きます。これは**ファイルの変更**タブで開き、コミット内のファイルのdiff ビューを表示するため、何が変更されたかを正確に確認できます。**詳細**タブをクリックすると、作成者、コミットメッセージ、タイムスタンプが表示されます。

![ファイルのdiff ビューを含むコミットの詳細](https://mintcdn.com/cdata-arc/d_uxoDpYg8BiVilE/26.4/images/version_control_commit_details.png?fit=max\&auto=format\&n=d_uxoDpYg8BiVilE\&q=85\&s=b5b14f70fc7bd51fdc0ac939398b01c2)

diff には変更されたすべての設定の以前の値と新しい値が表示されます。なお、以下の点に注意してください：

* パスワードとシークレットはマスクされます
* Vault の参照はキーシンボルでプレフィックスが付きます

セクション内の**すべての設定を表示**をクリックすると、そのセクションのすべての設定（コミットで変更されなかったものを含む）の全リストを確認できます。

![すべての設定を表示したコミットの詳細](https://mintcdn.com/cdata-arc/d_uxoDpYg8BiVilE/26.4/images/version_control_commit_details_all_settings.png?fit=max\&auto=format\&n=d_uxoDpYg8BiVilE\&q=85\&s=10831e2d346ece0e1f850dc6a00df293)

**ファイルの変更**タブの**リソースに移動**リンクをクリックすると、ファイルが変更されたArc の該当箇所に移動します。例えば、[MySQL](../../connectors/mysql) コネクタのdiff を表示している場合、リンクをクリックするとそのMySQL コネクタに移動します。

## バージョン管理ワークフローの例

以下の例は、Arc のGit 統合を使用する際に遭遇する一般的なバージョン管理のシナリオを示しています。これらのワークフローは、不可欠な操作（リモートリポジトリからの更新のプル、ブランチの作成と削除、変更のコミットとプッシュ、変更の復元、ローカルとリモートの変更が分岐した際のコンフリクトの解決、不要な変更の破棄）をカバーしています。

### 変更のプル

> [!NOTE]
>
> このワークフローはリモートリポジトリにのみ適用されます。

プルは選択したリポジトリに適用されます。別のリポジトリをプルするには、先にそのリポジトリを選択するか、[リポジトリリスト](#リポジトリの選択)でその行の**プル**をクリックします。

リモートから変更をプルするには、いくつかの方法があります：

* ツールバーの**プル**をクリックして、コミットを確認せずにプルする

* ツールバーのコミット数をクリックして、**リモートコミットをプル**プレビューを開く

  ![リモートコミットのプルプレビュー](https://mintcdn.com/cdata-arc/d_uxoDpYg8BiVilE/26.4/images/version_control_pull.png?fit=max\&auto=format\&n=d_uxoDpYg8BiVilE\&q=85\&s=16bc355aee1740236ce5a36d32d64fcd)

* **アクティビティ**ページの**コミット履歴**タブに移動し、左側のリモートコミット数へのリンクまたは右側の**プル**ボタンをクリックして、**リモートコミットをプル**プレビューを開く

**リモートコミットをプル**プレビューには、プルする準備ができているすべてのコミットが一覧表示されます。コミットをクリックして詳細を確認し、ファイル数にカーソルを合わせると、コミットに含まれるファイルを確認できます。タスクを完了するには、**コミットをプル**をクリックします。

![リモートコミットのプルの確認ダイアログ](https://mintcdn.com/cdata-arc/d_uxoDpYg8BiVilE/26.4/images/version_control_pull_remote_commits.png?fit=max\&auto=format\&n=d_uxoDpYg8BiVilE\&q=85\&s=d3490b81925f1f5ff18bee2a225762d2)

### ブランチの作成

新しいブランチを作成するには、ツールバーのブランチアイコンをクリックします（ここでブランチを切り替えることもできます）。

![ツールバーのブランチ切り替え](https://mintcdn.com/cdata-arc/d_uxoDpYg8BiVilE/26.4/images/version_control_switch_branch.png?fit=max\&auto=format\&n=d_uxoDpYg8BiVilE\&q=85\&s=5bba02d3e01e1ef189ff000e622160a2)

**ブランチを追加**をクリックし、ブランチに**名前**を付けます。どのブランチからコピーするかを選択し、**追加**をクリックします。

![ブランチの追加ダイアログ](https://mintcdn.com/cdata-arc/JuVWSaGlKX7avH_C/26.4/images/version_control_add_branch.png?fit=max\&auto=format\&n=JuVWSaGlKX7avH_C\&q=85\&s=4ecaf731a9fab5fc69a96654e3838f56)

### ブランチの削除

ブランチを削除するには、ツールバーのブランチアイコンをクリックします。削除したいブランチにカーソルを合わせ、ゴミ箱アイコンをクリックします。

![ブランチの削除ダイアログ](https://mintcdn.com/cdata-arc/d_uxoDpYg8BiVilE/26.4/images/version_control_delete_branch.png?fit=max\&auto=format\&n=d_uxoDpYg8BiVilE\&q=85\&s=fd1cbe700050379ada97f0b82c21d074)

### 新しい変更のコミットとプッシュ

Arc で変更を行っている際、ツールバーには選択したリポジトリで変更されたファイルの合計数が表示されます。

![変更されたファイル数を表示するGit ツールバー](https://mintcdn.com/cdata-arc/d_uxoDpYg8BiVilE/26.4/images/version_control_footer_toolbar.png?fit=max\&auto=format\&n=d_uxoDpYg8BiVilE\&q=85\&s=d59c1b1cf3d5ea75acdc08db5941353f)

**コミット＆プッシュ**をクリックして、**ローカル変更**フライアウトを開きます。これは、選択したリポジトリで変更したファイルに関する詳細を表示します。変更をコミットしてリモートにプッシュするには、コミットメッセージを入力する必要があります。

フライアウトのヘッダーには、コミット先のリポジトリの名前、スコープ（**グローバル**またはワークスペース名）、およびブランチを表示するリポジトリセレクターが含まれます。更新アイコンとヘルプアイコン、およびコミット対象として選択されている変更リソースの数を示すボタンも用意されています。**リソースを選択**リストのチェックボックスを使用して、コミットに含める変更リソースを選択します。

![ヘッダーにリポジトリセレクターを含むローカル変更フライアウト](https://mintcdn.com/cdata-arc/d_uxoDpYg8BiVilE/26.4/images/version_control_local_changes_flyout.png?fit=max\&auto=format\&n=d_uxoDpYg8BiVilE\&q=85\&s=a03cb0a7204e6c70c589241ba46ea3e1)

別のリポジトリにコミットするには、ヘッダーのリポジトリセレクターをクリックし、目的のリポジトリの横にある**選択**をクリックします。変更されたファイル、ブランチ、ステータス、コミットメッセージが、選択したリポジトリに合わせて更新されます。

![ローカル変更フライアウトで開いたリポジトリセレクター](https://mintcdn.com/cdata-arc/d_uxoDpYg8BiVilE/26.4/images/version_control_local_changes_repository_list.png?fit=max\&auto=format\&n=d_uxoDpYg8BiVilE\&q=85\&s=f014d66af9546299fd6495122efcfa25)

> [!NOTE]
>
> リモートリポジトリの場合、コミットとプッシュは単一のステップで行われます。ローカルにコミットしてからプッシュするのではありません。 ローカルリポジトリの場合、プッシュするリモートがないため、**コミット**のみ利用できます。

変更をコミットしてプッシュすると、ツールバーの確認メッセージがアクションの結果を知らせます。

### 以前のリビジョンからの変更の復元

リソースを以前の状態に復元するには、**アクティビティ**ページの**コミット履歴**タブに移動し、**Repository** フィルタを使用してリソースを含むリポジトリを選択します。復元はそのリポジトリにのみ適用されます。**変更ファイル**列の右側にある省略記号をクリックし、**復元**をクリックします。現在の状態と提案される復元ポイントの状態の間のdiff を確認し、**次へ**をクリックします。復元を続行すると、それらのファイル内のコミットされていない変更が完全に失われることに注意してください。タスクを完了するには、**リソースを復元**をクリックします。

### コミットとプルのコンフリクトの管理

> [!NOTE]
>
> このセクションはリモートリポジトリにのみ適用されます。ローカルリポジトリには分岐するリモートブランチがないため、コミットのコンフリクトは発生しません。

プッシュするローカルの変更があり、同時にプルするリモートの変更もある場合に、コンフリクトが発生する可能性があります。コンフリクトはリポジトリごとに追跡されます。1つのリポジトリでのコンフリクトが、別のリポジトリでのアクションを妨げることはありません。ツールバーはコンフリクトを反映し、進め方の提案を提供します。同じエラーメッセージは、**コミット**および**リモートコミットをプル**プレビューページにも表示されます。[リポジトリリスト](#リポジトリの選択)では、コンフリクトが発生しているリポジトリに、*リポジトリ内に競合があります。競合を解決するには、リポジトリに移動してください。* というメッセージが表示されます。

![ツールバーのコミットとプルのコンフリクトメッセージ](https://mintcdn.com/cdata-arc/d_uxoDpYg8BiVilE/26.4/images/version_control_commit_pull_conflict.png?fit=max\&auto=format\&n=d_uxoDpYg8BiVilE\&q=85\&s=547294a385ffb1bf84653946ac11f754)

1つの選択肢はコンフリクトを手動で管理することであり、もう1つは現在の変更を別のブランチにコミットすることです。これにより、リモートの変更を現在のブランチにプルできるようになります。

**Please commit to a new branch** をクリックすると、コミット先の別のブランチを選択できるページが開きます。新しいブランチを選択（または作成）したら、**変更をコミット＆プッシュ**を使用して変更をプッシュできます。

### 変更の破棄

選択したリポジトリの現在の変更を破棄するには、ツールバーのゴミ箱アイコンをクリックします。これにより、**変更を破棄**ペインが開き、破棄する変更を正確に選択できます。**次へ**をクリックし、選択が正しいことを確認してから、**変更を破棄**をクリックします。完了すると、確認メッセージが表示され、ツールバーの変更数が破棄された変更の数だけ減少します。

**ローカル変更**フライアウトで変更を破棄することもできます。破棄するリソースを選択し、**コミット...**ボタンのドロップダウン矢印を使用して**変更を破棄**を選択します。選択内容を確認してから、**変更を破棄**をクリックします。

## ローカルからリモートリポジトリへの移行

ローカルリポジトリがあり、コミット履歴を保持しながらリモートサーバーに接続したい場合は、リモートリポジトリに変換できます。これはグローバルリポジトリとワークスペースリポジトリの両方で機能します。

1. リモートリポジトリを作成します：お使いのGit プラットフォーム（GitHub、GitLab、Bitbucket など）で新しい空のリポジトリをセットアップします。

2. バージョン管理の設定を開きます：グローバルリポジトリの場合は、**設定 > 高度な設定 > Git バージョン管理**に移動します。ワークスペースリポジトリの場合は、ワークスペースを開き、省略記号メニューの**設定**をクリックします。**Git バージョン管理**タブをクリックします。

3. 構成の種類を**ローカル**から**リモート**に変更します。

4. リモートリポジトリのURL と認証情報を入力します。利用可能な認証スキームについては、[Git バージョン管理設定](https://docs.arc.cdata.com/26.4/self-hosted/ja/getting-started/administration/settings/git-version-control-settings.md)を参照してください。

5. **保存**をクリックします。Arc はリモートをリポジトリに追加し、認証情報を適用します。**ステータス**が**接続済み**と表示されたら、**コミット＆プッシュ**をクリックして、既存のローカルコミットをリモートリポジトリに送信します。

ローカルのコミット履歴と追跡対象ファイルは保持されます。Arc が基になる`.git` ディレクトリを再作成することはありません。

## リモートリポジトリからローカルリポジトリへの変換

リモートとの同期を停止しつつ履歴を保持するには、グローバルリポジトリまたはワークスペースリポジトリのバージョン管理の設定を開き、**構成の種類**を**リモート**から**ローカル**に変更して、**保存**をクリックします。Arc はリポジトリからリモートをきれいに削除します。ローカルのコミット履歴と追跡対象ファイルは保持され、そのリポジトリでは**プル**が利用できなくなります。

## リモートURL の編集

バージョン管理が初期化された後でも、リポジトリのURL を変更できます。すでにリモートに接続されているリポジトリのリモートURL を変更するには：

1. リポジトリのバージョン管理の設定を開きます。グローバルリポジトリの場合は、**設定 > 高度な設定 > Git バージョン管理**に移動します。ワークスペースリポジトリの場合は、ワークスペースを開き、省略記号メニューの**設定**をクリックします。**Git バージョン管理**タブをクリックします。
2. リポジトリURL と、必要に応じて認証情報を編集します。
3. **保存**をクリックします。

Arc はリモートを更新し、認証情報を適用します。ローカルのコミット履歴と追跡対象ファイルは保持されます。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.