November 10th, 2007

  • evan

git backups

Since git lets you rewrite history, it seems to me it may be possible for someone with commit access to your repository to irreparably remove files. (Again, it's tracking content, not representing history.) Here's a way to make backups easy.
  1. Create a location for your backup repo: ssh safehost; mkdir backupdir; cd backupdir; git init
  2. Back on your own machine, add a section to .git/config that sets up an alias for pushing:
    [remote "backup"]
            url = safehost:backupdir
            push = +refs/heads/*:refs/heads/*
    The last line says that any branches on your local machine become branches on the remote machine.
  3. Now you have a "backup" alias, so any time you want to snapshot your branches, just run git push backup .