Git on Dreamhost
by selene on Oct.14, 2009, under Blog
Though my website is hosted on Dreamhost, these days I mostly use them for version control hosting. So I was very happy when they set up git on their servers.
Casper Fabricius’ Keeping git repositories on Dreamhost using SSH has some instructions and a handy script for automating the process. Thing is, I tend to create the folders and files for a project before I set up the git repository. Casper’s script assumes you want to create the folder and repository at the same time.
So here’s my version of the script. If you call it without arguments, it assumes you want to make a repository for the current directory.
DREAMGIT_DOMAIN=user@yourdomain.com if [ $# -lt 1 ]; then PROJECT_DIR=${PWD##*/} else PROJECT_DIR=$1 mkdir $PROJECT_DIR cd $PROJECT_DIR fi ssh $DREAMGIT_DOMAIN 'mkdir -p ~/git/'$PROJECT_DIR'.git && cd ~/git/'$PROJECT_DIR'.git && git --bare init' git init git remote add origin ssh://$DREAMGIT_DOMAIN/~/git/$PROJECT_DIR.git touch .gitignore git add . git commit -m 'Created new repo' git push origin master echo " [branch \"master\"] remote = origin merge = refs/heads/master" >>.git/config echo "Your new git repo '$PROJECT_DIR' is ready and initialized at $DREAMGIT_DOMAIN/~/git/$PROJECT_DIR.git"
Note: both Casper’s and my scripts still work if you call them with a directory that exists, e.g. dreamgit dir_that_exists. You’ll see mkdir spout an error, but the rest will execute.
May 8th, 2012 on 1:36 pm
Do you still use them for GIT? Just curious about the difference between doing this and using a service like GITHub.
May 8th, 2012 on 1:56 pm
I do! Mostly it’s for personal messing-around projects where I want to have a remote backup in case of emergency, but the code’s in no shape to be shown to the public. GitHub limits the number of private repositories you can have (free accounts don’t get any). GitHub has a lot more in the way of project management features, like issue tracking, and makes it easier to widely share your code. For small stuff I find it overkill.
Another useful trick is to put your website files under version control and have the live copy be a checkout or export of the repository. You can even set up a server-side hook to immediately update or export the files on push. I used to do this before moving to a CMS.