すたらブログ

文系Webプログラマの備忘録

Git: リポジトリの中にリポジトリを入れたときに発生した問題の解決策

些細なつまづきですが、備忘録として。


状況

2つのウェブサイトを別々に作って、それぞれGitで管理していました。 しかし、一方のサイトをもう一つのサイトのカテゴリの一つとして統合することになり、フォルダも移動しました。 (以下では、組み込んだ方を親、組み込まれた方を子と呼びます。)

親/.git/
  ├ foo/
  ├ bar/
  └ 子/.git/

別にサブモジュールとして扱いたいわけではないので、Gitでの管理も一つにまとめるため、子の.gitフォルダを削除しました。


問題

子の内容が、親のGitで認識されません。 正確には、子のフォルダ自体は認識されますが、フォルダ内のファイルを認識してくれません。 どうやら、子にも.gitフォルダが存在していたため、子のフォルダ内は管理しなくて良いと親のGitが判断したようです。


解決策

Gitの管理対象を一度まっさらにしたかったので、下記のコマンドを実行しました。

# 一旦、全てをGitの管理対象から外す
$ git rm --cached -r .

# 全てを対象に含める
$ git add -A .
$ git commit -m "新カテゴリを追加"