#!/bin/bash # # git-amend-commit - edit a commit message (like "git commit --amend", but # works for non-HEAD patches). # # Copyright (C) 2008 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.$$" git checkout -f -b "$TMPBRANCH" "$CID" git commit --amend git rebase --onto "$TMPBRANCH" "$CID" "$MYBRANCH" git branch -d "$TMPBRANCH" echo "done."