発生した現象
rails-react-matching-app
というリポジトリ内で
backend
というディレクトリを作成し色々とファイルを追加したのですが、
いざgitで差分を確認するとbackend
というディレクトリしか認識されておらず、
その中に追加されたファイルの差分は出ていませんでした。
以前にもハマってその時はなんとか解決したのですが、
解決方法を忘れてしまい2度目のハマりポイントだったので記事にしようと思いました。
実行したコマンド
新規リポジトリを作成した後、
ディレクトリと諸々のファイルについてはこんな感じのコマンドで作成しました。
$ mkdir backend && cd backend
$ touch Dockerfile docker-compose.yml entrypoint.sh Gemfile Gemfile.lock
実際の状態のスクショ
こんな状態でした。
backend
というディレクトリの差分は出ているのですが、
中身のファイルについては何一つ差分が出ておらず。
もちろんまずは.gitignore
の設定を疑ったのですが、
特にいじってなく、実際に無視するように設定していませんでした。
.gitignore
の状態
backend
配下を無視する設定はないです。
Rails newした際に自動で作成されたもので、全くいじってません。
原因
こちらの記事が解決の糸口になりました。
Gitリポジトリの管理下に、さらに他のGitリポジトリがあるとき、浅い階層ではその他のGitリポジトリに置かれているファイルを感知しません。
結論、backendディレクトリ下に.git
ディレクトリが存在していたことが原因でした。
今回はrails-react-matching-app
というディレクトリを作成しており、
その配下にbackend
というディレクトリを新規作成したのですが、
そのbackend
ディレクトリ配下に.git
ディレクトリが存在していたことが問題でした。
backend
ディレクトリ配下に.git
ディレクトリが存在していたため、
rails-react-matching-app
の中にさらに別のGitリポジトリがあると認識されてしまい、
backend
ディレクトリの中の差分は認識されなかったということになります。
.git
は隠しフォルダなのでなかなか気づけませんでした。
無事差分が出ました
上記より、.git
がなければ他のリポジトリだと認識されないので、
単純に.git
を削除することで解決できました。
参考
.gitディレクトリとは?という方はこちら。