2023年12月24日

レポートの採点。

GitでSubmoduleがある時、そのsubmoduleがさらに別のsubmoduleを持っていて、その深い方のsubmoduleの権限を持っていない、という場合に–recursiveでcloneしようとすると失敗する。こういう時の対処法。

  1. リポジトリの問題を個別に解消しておく
  2. --recursiveをつけずにcloneする
  3. git submodule init
  4. git submodule update --remote

これにより、submoduleが「最新のコミット」を持ってくるので解決する。これまで単にgit submodule foreach git pullしようとすると、追加された時のコミットをもってこようとするから失敗していた。これに長い間悩んでたが、これでようやく解決。

いや、学生さんたちの卒論、修論をすべてsubmoduleで管理してたので。