#!/bin/sh PREFIX="from now" MESSAGE="[${PREFIX}] `date`" if [ $# -eq 0 ] then git add -u printf "${MESSAGE}\n\n`git diff --cached`" | git commit -F - elif [ $1 != "--rebase" ] then git add $@ printf "${MESSAGE}\n\n`git diff --cached`" | git commit -F - else FIRST_NOW_COMMIT=`git log --pretty=oneline --grep "${PREFIX}" | tail -n 1 | cut -d " " -f 1` INITIAL_COMMIT=`git log --pretty=oneline | tail -n 1 | cut -d " " -f 1` if [ ${FIRST_NOW_COMMIT} != ${INITIAL_COMMIT} ] then git rebase -i ${FIRST_NOW_COMMIT}^ else WORKING_BRANCH=`git branch -l | grep "*" | cut -d " " -f 2` git checkout ${FIRST_NOW_COMMIT} git commit --amend git rebase --onto HEAD ${FIRST_NOW_COMMIT} ${WORKING_BRANCH} fi fi