DEV Community


Posted on • Updated on • Originally published at

Git in local server

Using git for version control it's in itself a great help, however, the tool becomes more useful when it has to be used to upload code or projects to a local server.

To start, you must verify that your server has git installed, then you must create an empty repository with the next command:

git --bare init <Repo name>
# By convention, empty repos have the .git extension.
# Example:
git --bare init glowing-computing-machine.git
Enter fullscreen mode Exit fullscreen mode

Once you've created the empty repo, you can access it and view a similar structure.


Now, for your repo to update automatically, you must add a hook... exacly, in the hooks folder, you'll find some by default but the one you'll use is called different: post-receive. Create the file and add the next line:

git --work-tree=<destination path> --git-dir=<origin path> checkout -f

# The origin path will be the path where your empty repo will be placed
# And destination path will be the path where your files will be inserted
# By instance:
git --work-tree=/home/hali/Documentos/Git/_site \
--git-dir=/home/hali/Documentos/Git/glowing-computing-machine.git \
checkout -f
Enter fullscreen mode Exit fullscreen mode

Finally, add the permissions to execute the created file

chmod +x post-receive
Enter fullscreen mode Exit fullscreen mode

Only you must review, that your destination directory is completely empty

ls site

Then, execute git clone


Ready!, we can upload content... but it becomes annoying to have to write our password every time we do pull or push, so with the help of ssh-copy-id command, we can add our public ssh key to list of accepted keys on the server

ssh-copy-id <server IP>
Enter fullscreen mode Exit fullscreen mode


That's how we can upload code to our repo and it will be automatically copied in the folder that we choose.


Top comments (0)