Handy Git commands that save my day
web2media.net
web2media.net
No mention of git-stash. It can save a lot of time, though perhaps not enough to make up someone's day. Nor of git-reflog, which was the command that I'd say came closest for me: early on when the function of the commands was alien to me, discovering git-reflog massively increased my confidence tinkering with git commands. Not even a mention of the -i option to rebase.
In short: if I could down-vote, I would. This comment is in lieu of that.
alias gdate=date\ +%Y.%m.%d-%H.%M.%S
gitzip () { zip -ruv "$(gdate).zip" $(git diff $@ --name-only); }
Produces a zip file of all files that changed since the commit you pass as the argument. Then I just transfer the resulting zip over, and unzip its contents to the root project folder. Haven't figured out how to deal with deleted files this way yet, fortunately that's not common.--
And a pre-commit hook for linting PHP source code when I'm not in an IDE. Yes, this came around because of a few commits made without testing.
#!/bin/sh
exitStatus=0
for i in $(git diff --name-only --staged HEAD); do
[ "$VERBOSE" != "" ] && echo "Validating file $i"
echo "$i"| grep -q '.php$'
if [ $? -eq 0 ]; then
[ "$VERBOSE" != "" ] && echo "... seems to be PHP, running php lint"
php -n -l "$i"| grep -q 'Errors parsing'
valid=$?
if [ $valid -eq 0 ]; then
echo "File $i is invalid."
exitStatus=1
fi
fi
done
exit $exitStatus gblame()
{
find . -name $@ | xargs git blame
}Now all we need is a script that we can run like this:
git-bisect-auto good-commit bad-commit test-command
That returns the id of the first commit that breaks the tests $ git bisect start <bad> <good>
$ git bisect run <script>
[1] http://www.kernel.org/pub/software/scm/git/docs/git-bisect.h...In darcs, it's called `trackdown` and mandates usage of a test command, it cannot be used "interactively" (via $vcs bisect --good/$vcs bisect --bad the way git and mercurial can do it)
Yes. Its a plugin[1] for bzr.