kledgeb UbuntuやLinuxの最新情報を紹介

Ubuntu Git その40 - ハードリンクによるGitオブジェクトのコピーを禁止し、リモートリポジトリーをクローンする(git clone)

ハードリンクによるGitオブジェクトのコピーを禁止し、リモートリポジトリーをクローンする

  ハードリンクによる「Gitオブジェクト」のコピーを禁止し、「リモートリポジトリー」をクローンします。
  通常のファイルのコピー方法で、コピーを行います。

  Gitオブジェクトのハードリンク

    「ローカルプロトコル(ファイルパス)」を使用して「リモートリポジトリー」をクーロンする際、不変的なファイルである「Gitオブジェクト」は、ハードリンクで作成しようとします。

    ハードリンクはファイルシステムを超えられませんし、ハードリンクが利用できる状況は限られますが、ファイルのハードリンクを作成することで、「ローカルリポジトリー」が使用するHDDの使用量を大幅に削減できます。

  ハードリンクでは都合が悪い場合

    例えば、「リモートリポジトリー」をクローンしてバックアップを作成する際、バックアップツールによっては、ハードリンクされたファイルをうまく扱えません。

    そのような時はハードリンクの作成を禁止して、「リモートリポジトリー」をクローンすると良いでしょう。

オプションの説明

  ハードリンクによるコピーを禁止するには、以下のオプションを指定します。

オプション
--no-hardlinks

コマンドの実行例 

  コマンドの実行例です。

  1.ローカルリポジトリーの配置場所とリモートリポジトリー

    ここでは例として、「~/ドキュメント/git」フォルダー内に「myCloneProject」フォルダーを作成してもらい、「myCloneProject」フォルダー内にリポジトリーをクローンします。

    クローン元の「リモートリポジトリー」は、「~/ドキュメント/git/mySharedProject」です。


  2.カレントディレクトリーの移動

    「端末」を起動し、カレントディレクトリーを「~/ドキュメント/git」に移動します。


  3.コマンドの実行

    「リモートリポジトリー」をクローンします。
    コマンドの説明は、「リモートリポジトリーをクローンするコマンドの説明」を参考にしてください。

    ここでは、以下のコマンドを実行します。
    ポイントは、赤字の箇所です。

git clone --no-hardlinks mySharedProject myCloneProject


  4.コマンドの実行結果

    以下のように、「リモートリポジトリー」がクローンされます。


  5.フォルダーの確認

    「Nautilus」を起動し「~/ドキュメント/git」フォルダーを見ると、以下のように「myCloneProject」フォルダーが作成されています。


  6.myCloneProjectフォルダーの確認

    「myCloneProject」フォルダーを開くと、クローンされたリポジトリーが配置されています。


    「.git」フォルダーが、「Gitディレクトリー」です。
    「myCloneProject」フォルダーが、「ワーキングディレクトリー」です。

    「test.txt」はチェックアウトされたプロジェクトのファイルです。

ファイルの確認

  「リモートリポジトリー」のファイルのハードリンクになっていないか、確認します。

  1.リモートリポジトリーのファイル

    以下は、「リモートリポジトリー」にある「Gitオブジェクト」のファイルです。


  2.ローカルリポジトリーのファイル

    以下は、「ローカルリポジトリー」にある「Gitオブジェクト」ファイルです。
    「リモートリポジトリー」のコピーなので、中身は同じです。


  3.ファイルの情報

    上記2つのファイルの情報を表示すると、以下のようになります。
    以下は、「リモートリポジトリー」にあるファイルの情報です。


    以下は、「ローカルリポジトリー」にあるファイルの情報です。


    一番左に表示されるiノードの番号を比較すると、いずれのファイルもiノード番号が異なっています。
    従ってハードリンクではないコピーされたファイルということになります。


Git
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 22.04 その120 - UbuntuのブートローダーをBoot Repairで修復するには・Ubuntuが起動しないトラブルを解決
    UbuntuのブートローダーをBoot Repairで修復するには 「Boot Repair」はOSのブートローダーに起因するOSが起動しない問題を簡単に解決してくれるアプリです。
  • Ubuntu 22.04 その79 - 画面ロックの有効・無効を設定するには・画面ロック時の設定をカスタマイズするには
    画面ロックの有効・無効を設定するには 一定時間ユーザーによる操作がない時に、自動的に画面をロックしパスワードで保護したり、画面をブランク状態にできます。
  • Ubuntu 22.04 その95 - ディスプレイサーバーを切り替えるには・XorgとWayland
    ディスプレイサーバーを切り替えるには 「Ubuntu」はデフォルトで2種類のディスプレイサーバーを提供しています。
  • VirtualBox その125 - ゲストOSのUbuntuにLinux Guest Additionsをインストールするには
    ゲストOSのUbuntuにLinux Guest Additionsをインストールするには 仮想マシンにインストールしたゲストOSの「Ubuntu」に、「Linux Guest Additions」をインストールする方法です。
  • Linux その309 - This Week in Plasma の貢献者の募集と投稿頻度の抑制
    This Week in Plasma の貢献者の募集と投稿頻度の低下 KDE で This Week in Plasma の貢献者が募集されています。
  • Ubuntu 26.04 その5 - デイリービルドのディスクイメージが利用可能に・ディスクイメージのダウンロード
    デイリービルドのディスクイメージ Ubuntu 26.04 LTS のデイリービルドのディスクイメージが利用できるようになりました。
  • Ubuntu 26.04 その9 - Ubuntu Desktop 26.04 LTS の開発方針・プリインストールアプリの変更やソフトウェア管理の一元化など
    Ubuntu Desktop 26.04 LTS の開発方針 2025年11月26日、Ubuntu Desktop 26.04 LTS の開発方針がアナウンスされました。
  • Ubuntu nano その5 - 文字列を検索する
    文字列を検索する(Where Is)   文字列の検索は、部分一致と正規表現による検索が可能です。 検索の開始始点   現在カーソルのある位置から検索を行います。   もし、テキストの最後まで検索して文字が見つからない場合、   nanoはテキストの先頭から検索...
  • Ubuntuのバージョンと開発コードの対応表
    UbuntuのバージョンとUbuntuの開発コード 「Ubuntu」には各バージョンごとに開発コードが設定されます。
  • Ubuntu 22.04 LTSのインストール その5 - UEFI環境でパーティションの作成と構成 〜 ブートローダーのインストール先の選択
    UEFI環境でパーティションの作成と構成を行う UEFI環境でパーティションの作成と構成を行います。
記事のピックアップ
オプション