CIRepository folder keeps all database objects serialized into XML. CI shouldn't be used for pushing changes from one environment to another - it is designed for syncing all the developers.
As you've mentioned you are able to push all the physical files to staging.
Web parts, templates, etc. are objects sitting in database, that's why they are not pushed along with physical files. I'd recommend configuring content staging to push content and/or any data that sits in DB between environments.
Export/Import is another option.