Skip to content

Instantly share code, notes, and snippets.

@ylem
Last active October 13, 2024 20:48
Show Gist options
  • Save ylem/9d43ca29e7887b2d9ffada43f65086da to your computer and use it in GitHub Desktop.
Save ylem/9d43ca29e7887b2d9ffada43f65086da to your computer and use it in GitHub Desktop.
#server side:
#server live directory: /var/www/domain.com
#server repository: /var/repo/site.git
1. clone project from git/bitbucket into /var/www/domain.com or init the folder by "git init".
2. go to /var/repo/site.git and init the folder as git bare
$git init --bare
--bare means that our folder will have no source files, just the version control.
3. still in site.git folder go to hooks.
$cd hooks
$cat > post-receive # When you execute this command, you will have a blank line indicating that everything you type will be saved to this file
type:
#!/bin/sh
git --work-tree=/var/www/domain.com --git-dir=/var/repo/site.git checkout -f
4. $chmod +x post-receive
$exit
#Local workspace:
1. go to your "git" project folder.
2. $git remote add live ssh://[email protected]/var/repo/site.git
3. after any changes. remrember "push" to both live and master
$git push
then
$git push live
@kelsin
Copy link

kelsin commented Jan 29, 2023

Thanks for this ! When I saw "automatic" int the title, I thought it will be done without having to explicitly do this :

then
$git push live

Cuz I'm searching for a way to automaticly cause a git pull from the server side when my github repo is updated (either from workspace or from github web interface)

This solution doesn't help with that. If you want to do that you either need a server or process living somewhere that can respond to webhooks that github can send on PR/Commits or you setup github actions or other CI actions from another CI tool that will do the deploy steps. This process is for having a git repo that lives on the server that deploys after a push to it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment