cd /work/dir
git add -A
git commit -m "automatic commit"
git push origin master
branch=$(git rev-parse --symbolic --abbrev-ref $1)
if [ $(git rev-parse --is-bare-repository) = true ]
then
rep=$(basename "$PWD"|sed 's/.git//')
else
rep=$(basename $(readlink -nf "$PWD"/..|sed 's/.git//'))
fi
/home/scripts/git/post-update.sh $rep $branch
#!/bin/sh
DATADIR=/var/www/$1/$2
REPO=$1
BRANCH=$2
if [ ! -d $DATADIR ]
then
mkdir -p $DATADIR
git clone gituser@example.com:$REPO $DATADIR
cd $DATADIR
git checkout $BRANCH
else
cd $DATADIR
/usr/bin/git config user.email "deploy@local"
/usr/bin/git config user.name "Deploy Robot"
/usr/bin/git fetch origin
/usr/bin/git reset --hard origin/$BRANCH
/usr/bin/git stash
/usr/bin/git checkout
/usr/bin/git pull
fi
По шагам.
1. Делаете чистый репозиторий
2. Делаете ветки для старых годов (git checkout -b 2011)
3. Сохраняете там прежние годы (git add -A && git commit)
4. Возвращаетесь в ветку master (она остается пустой)
5. Делаете следующую ветку (git checkout -b 2012)
6. Повторяем пункт 3
Алсо, во избежание, можно сразу сделать веточку empty, чтобы случайный мердж в master не заставил вас потом делать откаты.
То есть для нового года делаете новую чистую ветку, при этом можно безнаказанно работать в предыдущих годах.