#!/bin/bash # # git-rm-commit - remove a commit from the current branch # # Copyright (C) 2007 Karel Zak # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. CID="$1" if [ -z "$CID" ]; then echo "Usage: $0 " exit 1 fi MYBRANCH=$(git branch | gawk '/^\* / { print $2 }') TMPBRANCH="tmp.$$" echo "Removing commit $CID from $MYBRANCH..." echo git checkout -f -b "$TMPBRANCH" "$CID"^ git rebase --onto "$TMPBRANCH" "$CID" "$MYBRANCH" git branch -d "$TMPBRANCH" echo "done."