Suppose you have a few commits in a git repository, and some of them are on the wrong branch. They're listed below from the oldest (a) to newest (g). The letters represent the commit checksums.

a b c d e f g

You want to move the bold commits b, d, and e to a new branch. So start by checking out the commit before the first bad one and creating a branch there.

Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway. Computer Networks, 3rd ed., p. 83. (paraphrasing Dr. Warren Jackson, Director, University of Toronto Computing Services (UTCS) circa 1985)
Spent a couple of days tracking down a strange error using PHPunit and SQLite for testing a complex application. The test suite kept throwing
PDOException: SQLSTATE[HY000]: General error: 5 database is locked
and halting in test that didn't touch the database. The problem was in an unrelated test that ran before it. The test uses iterators to examine database contents, but didn't iterate all the way through the result set. The iterator left the database locked.
Homebrew changed how it handles PHP. A brew update completely broke my dev setup. This is how I fixed it. My homebrew setup was too fucked to save. I started by backing up mysql (hello mysqldump --all-databases) and a few other important files in /usr/local that seemed important.
Update: None of this will work now. Homebrew has changed all of the PHP formulas and removed a bunch of stuff. Assuming you have xcode and homebrew installed and running, follow these steps.