いつものようにローカルリポジトリで変更したファイルをgit addとcommit、pushをしてリモートリポジトリに反映させようとしたのですが、リモートリポジトリに反映されません。
git status で確認
何か問題が発生したとき、git statusで確認します。
git statusは、今のローカルリポジトリの状況を返してくれます。
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: ../../public/css/style.css
no changes added to commit (use "git add" and/or "git commit -a")
modified: ../../public/css/style.css(変更したファイル)の文字が赤くなっていたので、うまくadd出来ていないことが分かりました。
因みにaddが出来ている場合、変更したファイル名が緑色になります。
原因
いつも私は、addする際は、git add . としていました。
今回も同様にgit add .をしてcommitをしようとしましたが、うまくいきません。
そこでgit add .の意味を調べてみました。
すると、git add .は、カレントディレクトリ以下の変更があった全てのファイルがaddされるとのことでした。
カレントディレクトリだと⁉ということで、ターミナルで確認すると、結構下の階層でaddしていました。
したがって、カレントディレクトリより上の階層は、addの対象外だったという訳です。
解決方法
リポジトリのルートディレクトリで再度、git add .とすれば、しっかりaddされます。
$ pwd
ルートディレクトリ
$ git add .
また、git add -Aというコマンドは、変更のあった全てのファイルがaddされます。
したがって、カレントディレクトリという制限がありません。
とりあえず、変更した全てのファイルをaddしたい場合、git add -Aがオススメであることが分かりました。
$ git add -A
変更したファイル名を特定してaddすることでも解決はできます。
$ git add 変更したファイル名