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 ?
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
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.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.