Although I am sure that I\'ve added& committed ALL files and folders into my local git repo before push
I don\'t know why the remote repo is missing the config folde
git will not check-in an empty directory, so if your "config" dir is empty, it will not be included into your commit. "fix" that by adding a dummy-file
touch config/nada
git add config/nada
git commit config/nada -m "dummy file to force inclusion of config/"
git push heroku master
probably the files in your config/ directory are in some global or system-wide .gitignore file
EDIT1:
there are a number of ways how you can specify files excluded by git. you might want to check all of them to see whether you are ignoring your config-directory:
command-line args (probably not your problem)
.gitignore file in the git repository directories
$GIT_DIR/info/exclude
a file specified by the core.excludes property (either system wide or global)
git config core.excludes
git config --global core.excludes
git config --system core.excludes
check all the possibilities, eventually posting them here (or at some pastebin)
in any case, you should be able to override excludes by explicitely adding a file:
git add config/foo.conf
git commit config/foo.conf -m "manually added foo.conf"
git push heroku master
EDIT2:
i don't think that "pushing" is the problem, but rather adding the files to the repository. confirm, that the config-files are indeed under git-control. e.g. after adding/committing your files do:
git ls-files config/
and make sure that the files are there.
EDIT3:
additionally, it might well be that you are pushing correctly to heroku, but they are not synching your repo as expected to the deployment, so the remote-console does not show the config (either because it's excluded from the sync, because it ends up somewhere else or because it's filtered out when displaying it; or because you are actually looking at the wrong place)
so do:
$ git add config/foo.conf
$ git commit config/foo.conf -m "manually added foo.conf"
$ git push heroku master
$ cd /tmp
$ git clone testclone
$ ls testclone/config/
if this works, then something is wrong with the checkout on the heroku-site. mabe you need to do something like this:
$ heroku run bash -a dcaclab3
[...]
$$ git pull
$$ ls config/