Search code examples
gitremote-servergit-push

Remote Git Repository in document root


Im trying to use git for my website. The website is on our webserver.

mkdir /home/website/public_html
cd /home/website/public_html
git --bare init

Then I go to the local machine and change into the directory where I have my files

git remote rm origin
git remote add origin git@server.com:/home/website/public_html
git push origin master
Enter passphrase for key '/c/Users/git/.ssh/id_rsa':
Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (6/6), 460 bytes, done.
Total 6 (delta 0), reused 0 (delta 0)
To git@server.com:/home/website/public_html
 * [new branch]      master -> master

But now when I got to my back to my server:

ls /home/website/public_html
branches  config  description  HEAD  hooks  info  objects  refs

Where are my files I pushed to the server? Am I going about this the wrong way? (the only thing in the local folder I pushed from was a readme)


Solution

  • You have created a bare repository on the server. Bare repositories do not have a working area.

    I assume you are trying to use Git for website publishing? See this link for one option. In short:

    • You create 2 repositories on the server. One is a bare repository, just like the one you have already created, but it's outside of the public_html directory
    • Other is a normal repository inside the public_html directory
    • You create a post-receive hook that updates the repository inside the public_html directory whenever you push to the bare repository