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

サブモジュールを強制的にチェックアウトする

  「サブモジュール」を強制的にチェックアウトします。

  デフォルトでは、更新する「サブモジュール」の「ワーキングディレクトリー」がダーティーな時や、すでに「コミットID」が指す「コミットオブジェクト」がチェックアウトされている時は、チェックアウトを実行しません。

  デフォルトの動作を見てみると、以下のようになります。

  1.サブモジュールのブランチの状態

     「サブモジュール」のブランチの状態は、以下のようになっています。    


    「HEAD」が指すブランチは「fix」ブランチなので、現在のブランチは「fix」ブランチであることが分かります。

  2.サブモジュールのワーキングディレクトリーの状態

     「サブモジュール」の「ワーキングディレクトリー」の状態を見てみます。
    以下のように「fix.txt」ファイルが編集されており、「ワーキングディレクトリー」はダーティーな状態です。


  3.サブモジュールをチェックアウト

    この状態で、「スーパープロジェクト」から「サブモジュール」をチェックアウトしてみます。

    以下のように、「サブモジュール」の「ワーキングディレクトリー」がダーティーな状態であるため、チェックアウトに失敗しています。


コマンドの実行例

  上記の状態で、「サブモジュール」を強制的にチェックアウトしてみます。

  「サブモジュール」を強制的にチェックアウトすると、「サブモジュール」の「ワーキングディレクトリー」で行った変更は、全て破棄されるため注意してください。

  1.コマンドの実行

    コマンドのオプションは、以下のオプションを指定します。

ショートオプション ロングオプション
--f --force

    「端末」から、以下のコマンドを実行します。
    コマンドの詳細は、「サブモジュールを更新するコマンドの説明」を参考にしてください。

    ポイントは、赤字の箇所です。

git submodule update --checkout --force


  2.コマンドの実行結果

    以下のように「サブモジュール」のチェックアウトが行われます。


  3.サブモジュールのワーキングディレクトリーの状態

     「サブモジュール」の「ワーキングディレクトリー」の状態を見てみます。
    「ワーキングディレクトリー」はクリーンな状態になっています。


  4.サブモジュールのブランチの状態

     「サブモジュール」のブランチの状態は、以下のようになっています。 


    チェックアウトが行われたため、「HEAD」はチェックアウト前の状態から変更されています。


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