武田隆志(63)25こんにちは。サービスグループの武田です。バージョン管理システムであるGitはソースコードなどをリポジトリという単位で管理します。Gitにはサブモジュールという機能があり、これを利用することで別のリポジトリを自身のリポジトリ内で再利用できます。便利なサブモジュール機能なのですが、サブモジュール内で何か変更などがあると親リポジトリ側でコミットができません。サブモジュール内でビルドなどをして成果物が生成され、それが.gitignoreに書かれていない場合などが該当します。いえ、サブモジュールでそれをコミットするわけにもいきません。解決方法は主に2個あるようです。実際に再現させつつ、その解決方法を紹介します。次のような環境で検証しました。2.14.2ローカルにリポジトリを準備するまずは適当な作業ディレクトリに移動し、サブモジュールとなるsubmod-repoリポジトリを作成します。適当にREADMEと成果物を生成するビルドスクリプトを追加してコミットしておきます。build.sh'続いてsubmod-repoリポジトリをサブモジュールとして利用するparent-repoリポジトリを作成します。commit'これで準備ができました。それではparent-repoリポジトリにsubmod-repoリポジトリをサブモジュールとして追加します。submoduleコマンドを使用します。cleanサブモジュールでファイルを追加してみるサブモジュールで変更を発生させるため、サブモジュールとして追加したsubmod-repoでbuild.shを実行してみます。18295850e3d1456cbda76626bf5b238b31a84394-dirtyもくろみどおりサブモジュールでuntrackedなファイルが追加されました。直接的な解決策としてはサブモジュール内でコミットしてしまうことですが、今回のようにビルドした成果物をコミットしたくはありません。--ignore-submodulesオプションを使用するというわけで、ファイルが追加されてしまうことはしかたがないとして、親リポジトリで操作する際にサブモジュールの変更を無視できればよさそうです。これには--ignore-submodules[=<when>]オプションが利用できます。<when>にはnone、untracked、dirty、allが指定できます。詳しくはドキュメントを参照してください。Documentationさっそくオプションを指定してコマンドを実行してみます。--ignore-submodules=dirtyたしかに差分が出なくなりました!.gitmodulesにignoreを追加するオプションを指定すれば変更を無視できることがわかりました。毎回オプションをつけるのは正直面倒です。共同開発をしている場合、作業者全員に毎回オプションを付けろというのもなかなかのカオスです。dirtyの設定を追加する方法です。configコマンドを使用するか、直接ファイルを修正してもOKです。dirty修正したファイルをコミットして、あらためて差分を確認してみます。cleanオプションを付けなくてもサブモジュールの差分が出なくなりました!素敵!まとめサブモジュールで変更が出てしまうケースの解決方法をお届けしました。本音を言えば、こういった設定をしなくても済むのが理想ですね。自分が管理するリポジトリでは、コミットに含めないファイルなどは.gitignoreで指定しておきたいですね。632,829JavaやPython、シェルスクリプト(bash)を書くことが多いです。最近はTypeScriptとかRustを勉強中。〜ログ収集、監視、分析を触って体感しよう!〜」を開催しますお申し込み受付は終了しました。ありがとうございました。今後セミナーのお知らせを受け取りたい方は、こちらからご登録をお願いします。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe300件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui300インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。平野重利123Pythonで、標準入力を変換して標準出力に出すCLIプログラムのテンプレートをご紹介します。菊池修治47こんにちは、菊池です。勉強会#1に登壇しました。サーバのみならずネットワーク機器の仮想化も年々進んでいます。スペックに縛られないこととか、展開のしやすさとか初期考慮点が少なくなるのは嬉しいです。武田隆志1098このエントリは、2018年、2019年に公開したAWS全サービスまとめの2020年版です。これまではいくつかに分割して公開していましたが、1エントリにまとめてほしいという要望をもらっていたため、今年は1エントリに集約してみました。CAFEのサービスが「LINEアプリ」として利用できるようになりました。これまではLINEのトークから利用する形でしたが、LINEサービス内から利用できるようになりました。これまでより便利に、シームレスにご利用いただけます。Cafe300件のシェア(そこそこ話題の記事)インフラ未経験の私が内定から入社までに読んだ技術書11冊ブログ記事2020年01月16日Yui300インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。悠紀235ShifterはWordPress環境をサーバーレスで立ち上げ、静的なサイトを生成することができるサービスです。FAQサイトをサクッと作ってみました。Takumi227こんにちは。DA事業本部の春田です。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。