Instant Deployment with Git
One of the nicest things in git is that you can actually deploy code to production (or just your test environment) w/o implementing a complicated CI solution.
Off course that using CI such as Jenkins is recommended when compilation is required (JAVA/C/C++/C#) or when TDD/unit tests are use (and you better use them).
Yet, when you just need to deploy, git can be a great service for you.
Note: please note that you must an ssh access from the local machine (not always feasble).
How is done?
Actually it is very simple (and a complete explenation can be found atstackoverflow and toroid):
Step #1: Setup a repository in the development environment and commit a first file
> git init
Step #2: Setup an environment at the web server
> mkdir /path/to/dir/website.git && cd /path/to/dir/website.git
> git init --bare
Step #3: Enable a post receive hook at the web server> mkdir /var/www/www.mydomain.com> cat > hooks/post-receive#!/bin/shGIT_WORK_TREE=/var/www/www.mydomain.com git checkout -f> chmod +x hooks/post-receiveStep #4: Create a trigger at the development environment (and why you need ssh access from the workstation).> git remote add web ssh://www.mydomain.com/path/to/dir/website.git> git push web +master:refs/heads/masterStep #5: Code, Commit and Push to production> echo 'Rocking website!' > index.html
> git add index.html
> git commit -q -m "The index file was commited"
> git push web
Bottom Line
It is a simple task, but tricky if you don't have a direct access to the server (anyone said Jenkins?)
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)






Comments
Peter Butkovic replied on Fri, 2013/03/01 - 4:35am
this seems crazy simple, but to be honest, I like it.
Moshe Kaplan replied on Fri, 2013/03/01 - 12:33pm
in response to:
Peter Butkovic