Skip to content

Instantly share code, notes, and snippets.

@bleis-tift
Forked from mzp/git-now
Created October 29, 2011 13:05
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save bleis-tift/1324421 to your computer and use it in GitHub Desktop.
Save bleis-tift/1324421 to your computer and use it in GitHub Desktop.
git-now
#!/bin/sh
PREFIX="from now"
MESSAGE="[${PREFIX}] `date`"
if [ $# -eq 0 ]
then
git add -u
printf "${MESSAGE}\n\n%s" "`git diff --cached`" | git commit -F -
elif [ $1 == "--diff" ]
then
FIRST_NOW_COMMIT=`git log --pretty=oneline --grep="${PREFIX}" | tail -n 1 | cut -d " " -f 1`
git diff ${FIRST_NOW_COMMIT}^
elif [ $1 == "--fixup" ]
then
FIRST_NOW_COMMIT=`git log --pretty=oneline --grep="${PREFIX}" | tail -n 1 | cut -d " " -f 1`
git reset ${FIRST_NOW_COMMIT}
git commit --amend -a
elif [ $1 != "--rebase" ]
then
git add $@
printf "${MESSAGE}\n\n%s" "`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
@bleis-tift
Copy link
Author

mzpのgit-nowからの変更

  1. compactオプションを追加し、前回のコミットと全く異なるファイルに対するgit-nowは、amendして一つにまとめるようにした
  2. コミットメッセージにdiffを含めないようにした
  3. fixupの際にコミットメッセージを指定できるようにした
  4. fixupの際にgit add -Aを行うようにした

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment