ローカルプロトコル(ファイルパス)を使用して、リモートリポジトリーをクローンする
「ローカルプロトコル」(ファイルパス)を使用して、「リモートリポジトリー」をクローンします。「ローカルプロトコル」では、「リモートリポジトリー」の指定方法に以下の2種類があります。
- リモートリポジトリーのファイルパスを指定
- リモートリポジトリーのファイルパスをURIで指定
ここで紹介する内容は、前者の「リモートリポジトリーのファイルパスを指定」 する方法です。
リモートリポジトリーの指定方法について
「リモートリポジトリー」は、ファイルパスで指定します。1.ローカルリポジトリーの配置場所とリモートリポジトリー
ここでは例として、「~/ドキュメント/git」フォルダー内に「myCloneProject」フォルダーを作成してもらい、「myCloneProject」フォルダー内にリポジトリーをクローンします。クローン元の「リモートリポジトリー」は、「~/ドキュメント/git/mySharedProject」です。
2.カレントディレクトリーの移動
「端末」を起動し、カレントディレクトリーを「~/ドキュメント/git」に移動します。3.コマンドの実行
「リモートリポジトリー」をクローンします。コマンドの説明は、「リモートリポジトリーをクローンするコマンドの説明」を参考にしてください。
ここでは、以下のコマンドを実行します。
git clone mySharedProject myCloneProject
4.コマンドの実行結果
以下のように、「リモートリポジトリー」がクローンされます。5.フォルダーの確認
「Nautilus」を起動し「~/ドキュメント/git」フォルダーを見ると、以下のように「myCloneProject」フォルダーが作成されています。6.myCloneProjectフォルダーの確認
「myCloneProject」フォルダーを開くと、クローンされた「ローカルリポジトリー」が配置されています。「.git」フォルダーが、「Gitディレクトリー」です。
「myCloneProject」フォルダーが、「ワーキングディレクトリー」です。
「test.txt」はチェックアウトされたプロジェクトのファイルです。
Gitオブジェクトのハードリンクについて
「リモートリポジトリー」のパスを指定してリポジトリーをクローンした場合、「ローカルリポジトリー」の「Gitオブジェクト」は、「リモートリポジトリー」のファイルのハードリンクになります。1.リモートリポジトリーのファイル
以下は、「リモートリポジトリー」にある「Gitオブジェクト」のファイルです。2.ローカルリポジトリーのファイル
以下は、「ローカルリポジトリー」にある「Gitオブジェクト」ファイルです。「リモートリポジトリー」のコピーなので、中身は同じです。
3.ファイルの情報
上記2つのファイルの情報を表示して、確認します。以下は、「リモートリポジトリー」にあるファイルの情報です。
以下は、「ローカルリポジトリー」にあるファイルの情報です。
一番左に表示されるiノードの番号を比較すると、いずれのファイルも「1307673」になっています。
従ってハードリンクで作成されたファイルということになります。
ハードリンクで作成されるファイルは、不変的なファイルであり、中身を直接編集するようなファイルではありません。
「Gitオブジェクト」がハードリンクされたファイルに該当します。
上記でも見ての通り、アクセス権が読み取り専用になっています。
ハードリンクでファイルを作成することで、「ローカルリポジトリー」が使用するHDDの使用量を削減することが出きます。