kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。 Ubuntuの最新情報も紹介しています。

リモートリポジトリーとローカルリポジトリー

  既存のリポジトリーをクローン(コピー)すると、「リモートリポジトリー」と「ローカルリポジトリー」の関係が作られます。


  リポジトリーのクローンとリポジトリーの関係

    すでにあるリポジトリーをクローンすると、クローン元のリポジトリーと、クローンしたリポジトリーが結び付けられます。
    この結びつけは、後で変更することができます。

    あるリポジトリーで管理されているプロジェクトに参加するユーザーは、サーバーからリポジトリーをコピー(クローン)して、自分のPCにリポジトリーを構築します。

    この時、クローン元のリポジトリーのことを、「リモートリポジトリー」と表現します。
    自分のPCにコピーしたリポジトリーのことを、「ローカルリポジトリー」と表現します。

  リモートリポジトリー名

    1つの「ローカルリポジトリー」に複数の「リモートリポジトリー」を結びつけることができます。
    従って「ローカルリポジトリー」に、それぞれの「リモートリポジトリー」を区別する名称が必要になります。

    デフォルトでは、クローン元のリポジトリーに「origin」という名称が付けられます。
    リモートリポジトリー名は、ユーザーが指定したり、後で変更することができます。

リモートリポジトリーへのアクセス手段

  共有したリポジトリーを他のユーザーに公開するには、他のユーザーがリポジトリーにアクセスできるよう、何かしらアクセス手段を提供する必要があります。

  このアクセス手段のことを、プロトコルと言います。
  このプロトコルには、いくつか種類があります。

  どの方法でも良いですが、「HTTPプロトコル」+「Gitプロトコル」の組み合わせが人気のあるプロトコルです。

  Gitで利用できるプロトコル

    「Git」で利用できるプロトコルには、以下の4種類があります。


ローカルプロトコル

  「ローカルプロトコル(Local Protocol)」は、最も基本的なプロトコルです。


  「リモートリポジトリー」を自分のHDDに配置し自分のPCから利用する場合や、LAN内で使用するなど、限られた範囲で使用するプロトコルです。

  他のユーザーとリポジトリーを共有するには

    他のユーザーとリポジトリーを共有するには、NFSなど共有フォルダーの仕組みを利用します。
    他のユーザーは、「リモートリポジトリー」が配置されている共有フォルダーを自分のPCにマウントし、「リモートリポジトリー」にアクセスします。

    この時「Git」は、「ローカルプロトコル」で「リモートリポジトリー」にアクセスします。

  URIの記述方法

    「ローカルプロトコル」で「リモートリポジトリー」にアクセスする際、以下の2種類のURIの記述方法があります。

  • リモートリポジトリーのパス
  • file://リモートリポジトリーのパス

    「file://」の記述があるかどうかの違いですが、この記述の有無で少し動作が変わります。
    違いは、「オブジェクトデータベース」のコピー方法です。

  リモートリポジトリーのパス

    「file://」の記述をせずリモートリポジトリーのパスを指定した場合、「Git」は「オブジェクトデータベース」のコピーを、ハードリンクによるコピーや、単純なフォルダーやファイルのコピーで行います。

    単純なコピーなので、「オブジェクトデータベース」内に不要な「Gitオブジェクト」が配置していた場合、それらのファイルもコピーされます。

    この方法は、「file://リモートリポジトリーのパス」よりもパフォーマンスが良いです。

  file://リモートリポジトリーのパス

    「file://」の記述がある場合、ネットワーク越しに「リモートリポジトリー」があるかのような動作を行います。

    「オブジェクトデータベース」内の不要な「Gitオブジェクト」がコピーされないため、不必要な「Gitオブジェクト」がないキレイなクローンを行うことができます。

    「オブジェクトデータベース」内の不要な「Gitオブジェクト」の整理は、「リモートリポジトリー」の管理者が整理する作業なので、特に問題がなければ「file://」の記述がないURIを利用すると良いでしょう。

  ローカルプロトコルの利点

    「ローカルプロトコル」の利点は、「リモートリポジトリー」の管理が簡単なことです。
    「リモートリポジトリー」をNFSで共有すれば、ユーザーのアクセス管理をNFS側で行うことができます。

    「リモートリポジトリー」の共有に必要な多くの作業を、ユーザーが慣れ親しんだ方法で実現することができます。

  ローカルプロトコルの欠点

    インターネットなどLANを超えて共有フォルダーをマウントするには、様々な課題があります。
    そもそも共有フォルダーをマウントできるかどうか、共有できたとしても十分なパフォーマンスが期待できるかどうか、など課題が出てきます。

    LAN内など、限られた範囲で使用するのがよいでしょう。


関連コンテンツ
同一カテゴリーの記事
コメント
オプション