I'd like to use git push to update my (nginx) webserver content, while still keeping things secure. One way I could do this would be to ssh to my server, git pull from bitbucket into /srv/www, and chown -R www-data:www-data ..

It'd be slicker, though, to be able to push it there from my home computer (a la Heroku), but I'm not sure how best to handle issues of permissions and ownership.

Does anyone have advice about the most sensible way to go about this?


If you were using your web server as a git server, you could go for the only slightly complicated approach of using git hooks (put your update code into a script and call that on every git update); some git hosts support hooks too, but that's going to be quite a lot more complicated as they'll be calling your update notifier over the network rather than running a local script



Never place any working copy inside site-tree


git archive --remote ... is your silver-bullet


Just to close the book on this, given the extra complications that I 1) have the html for several different sites as submodules in a top-level project, and 2) want to keep the canonical source on bitbucket, I decided to just ssh in and git pull rather than having more moving parts.

(Thanks for the info in the other answers, which equipped me to learn about the different options.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.