Reputation: 34108
I have followed this excellent write up http://toroid.org/ams/git-website-howto to deploy code to my server using Git's post-hooks strategy.
I have a post-update file that looks like this:
GIT_WORK_TREE=/home/rajat/webapps/<project name> git checkout -f
Everytime I push code to master branch, it gets auto deployed. What I want to do now is to make this support multiple branches, so that:
For this, the post-update hook needs to understand which branch got updated. Is this possible ?
Upvotes: 7
Views: 2639
Reputation: 1002
What I usually do is add two bare git repos in different locations on my web server; one for test, one for production. Both repos have post-hooks to checkout to the correct directory. Then I add both as remotes on my (single) local repo.
Using this method I can push any branch to my test remote or my production remote at any time. Not sure if this is the right way but it's worked well for me.
Upvotes: 1
Reputation: 1323115
It is possible to write a post-update hook which detect the branch name.
See for inspiration:
git post-receive
hook to deal with a specific branch" As an example (all those hooks are based on git rev-parse
):
#!/bin/bash
while read oldrev newrev refname
do
branch=$(git rev-parse --symbolic --abbrev-ref $refname)
if [ "master" == "$branch" ]; then
# Do something
fi
done
Upvotes: 4