It is a best practice to push to a bare repo: see “concept of bare shared repository in git” and all about “bare” repos — what, why, and how to fix a non-bare push.
Which means on your server, you need to:
- create a Git repo (you already did)
- clone that repo a bare repo (
git clone --bare yourProjectFolder yourProjectFolder.git
)
(the.git
extention is a naming convention for bare repo root folder) -
push to that bare repo instead:
Go to your local repo, and type:git remote set-url origin /url/repo/repo/yourProjectFolder.git
-
add a hook in the bare repo (on the server,
yourProjectFolder.git/hooks/post-receive
), in which you- change directory (to your non-bare repo folder
yourProjectFolder
) unset GIT_DIR
git pull ../yourProjectFolder.git
- change directory (to your non-bare repo folder
See more at “Remote nodejs server deployment with forever“.